Выбор ответа Junior Типы и строгая типизация обновлено
0.1 + 0.2 в PHP
Вопрос
Что выведет var_dump(0.1 + 0.2 == 0.3);?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: bool(false). Числа с плавающей точкой хранятся в двоичном виде (IEEE 754), и 0.1 + 0.2 даёт 0.30000000000000004.
Варианты ответа
bool(false)правильный ответbool(true)float(0.3)- Ошибку сравнения float
Разбор
Числа с плавающей точкой хранятся в двоичном виде (IEEE 754), и 0.1 + 0.2 даёт 0.30000000000000004. Сравнение с 0.3 ложно. Деньги считают в целых копейках или через bcmath/brick/money, а дробные числа сравнивают с допуском: abs($a - $b) < PHP_FLOAT_EPSILON.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.