# L!MP (13.02.2014 / 17:11)
Мерял свитер, с оленями, а он оказался мне мал. Так и не купил. Теперь в печали.
Надо было мерить с котятами
# L!MP (13.02.2014 / 17:11)
Мерял свитер, с оленями, а он оказался мне мал. Так и не купил. Теперь в печали.
Фи... Пыталась напялить джинсы, которые носила 4 года назад... В общем, скоро это будет креативная джинсовая подушка
Гг, я про обручь вспомнил. Большая подушка получится, гг.
L!MP, а бороду уже отпустил?
Невероятное рядом.
$a = 15.9; //=> float 15.9
$b = 5.3 * 3; //=> то же, float 15.9
var_dump($a == $b); //=> думаете равно? false
L!MP,
http://www.php.su/learnphp/dat ... float
оттуда цитата:
Довольно часто простые десятичные дроби вроде 0.1 или 0.7 не могут быть преобразованы в свои внутренние двоичные аналоги без небольшой потери точности. Это может привести к неожиданным результатам: например, floor((0.1+0.7)*10) скорее всего возвратит 7 вместо ожидаемой 8 как результат внутреннего представления числа, являющегося в действительности чем-то вроде 7.9999999999....
Это связано с невозможностью точно выразить некоторые дроби в десятичной системе счисления конечным числом цифр. Например, 1/3 в десятичной форме принимает вид 0.3333333. . ..
Так что никогда не доверяйте точности последних цифр в результатах с числами с плавающей точкой и никогда не проверяйте их на равенство.
Как вариант преобразовывать такие числа в строки, тогда получается все нормально:
var_dump((string)$a == (string)$b);
web_demon, Костыльно, если нужна точность, то лучше юзать bcmath