Вот такая вот вам задачка на понимание одной полезной вещи,oбьясните,почему ответ будет a!=c : Код (Text): $a=0.1; $b=1.1; $c=b-1; if($a==$c){ echo "a=c";} else{ echo "a!=c";}
PHP: <? $a=0.1; $b=1.1; $c=bcsub($b,1); if (bccomp($a,$c)==0){ echo "a=c";} else{ echo "a!=c";} ?> Вот так надо делать... А почему — оставляем на разбор посетителям.
Belegnar, мое решение как раз единственно правильное. Читайте мануал. vb, 2-ку тебе. Иди читать мануал. Вот вам еще примерчик: PHP: <? if (floor((0.1+0.7)*10)==8) { echo "equal"; } else { echo "not equal"; } ?>
не знал что в php есть такой касяк, все таки 0.1 это не 0.049384629238473287428378293748732847233284983274832, не должно быть тут таких траблов. Горбунов Олег, +1 Хехе, ок
А это не косяк PHP. Это особенность работы процессора с числами с плавающей точкой. Можно еще почитать, как число с плавающей точкой хранится - будет понятней причина.