Задать вопрос
Snorway
@Snorway

PHP intval() округляет?

Столкнулся со следующим поведением:

echo 2.28 * 100; // 228, ожидаемо
echo intval(2.28 * 100); // 227, как так?

Почему?
  • Вопрос задан
  • 1628 просмотров
Подписаться 2 Оценить 1 комментарий
Ответ пользователя Юрий К ответам на вопрос (4)
riky
@riky
Laravel
да уж забавно получается

intval(2.25 * 100) === intval(2.26 * 100) // true
если последняя цифра > 5 то округляется вниз

но
intval(2.5 * 100) === intval(2.6 * 100) // false

а это вообще brainfack
echo intval(2.55 * 100); // 254
echo intval(2.56 * 100); // 256


round все решает
echo round(2.55 * 100); // 255
echo round(2.56 * 100); // 256
Ответ написан
Комментировать