преобразование float в int

quad_4

Новичок
преобразование float в int

Результатом выполнения данного кода будет 78.
Кто нибудь может это объяснить ?
PHP:
echo (int)((0.1+0.7) *10 );
echo (0.1+0.7) *10;
Еще веселее становится при просмотре результатов вот такого кода
PHP:
for($i=0.1;$i<=0.9;$i=$i+0.1)
	for($j=0.1;$j<=0.9;$j=$j+0.1)
		echo "(int)(($i+$j) *10 ) = ".(int)(($i+$j) *10 )."<br>\r\n";
-~{}~ 13.12.07 17:09:

а вот здесь разъяснение
http://www.php.net/manual/ru/language.types.float.php#warn.float-precision
 

dark-demon

d(^-^)b
quad_4, разница в том, что в первом случае вещественное преобразуется в целое (используя функцию floor), которое преобразуется в строку. а во втором - вещественное сразу преобразуется строку. и видимо там происходит какое-то хитрое округление.
 

RigVan

Постоянный член клуба
quad_4
Используйте математические функции PHP
 
Сверху