Вещественные числа

Aleksey_f

Новичок
Добрый день!
Вопрос задам коротко, кто то может объяснить почему при выполнении этого кода ни чего не выводится?

PHP:
$num = 4;
for ($i = 0.01; $i <= $num; $i += 0.01)
{
   if ($i == 4)
      print 'ok';
}
 

craz

Нестандартное звание
кототко ибо $i не может быть флоат

if ($i/100 == 4)
 

korchasa

LIMB infected
Aleksey_f
Потому что нельзя сравнивать два float'а между собой "в лоб". В любом языке. Связанно это с формой представления чисел. Где почитать - хз.
PHP:
$num = 4;
for ($i = 0.01; $i <= $num; $i += 0.01)
{  
  if (round($i,6) == 4)
   print 'ok';         
}
 
Сверху