У меня есть целое число
$price = 19.999999995;
Я хочу, чтобы php распечатывал любые целые числа, похожие на $ price integer, до верхнего целочисленного значения, которое равно «20».
$total = ceil($price);
Я ожидаю, что приведенное выше общее значение в $ 20 будет равно, но возвращается «21».
Как я могу сделать это? и почему он возвращает 21 вместо 20.
Использовать round()
функция.
$price = 19.999999995;
$total = round($price);
echo $total;
Как указано в документации PHP:
Обратите внимание, что «ceil» может показывать неожиданное поведение при использовании значений с плавающей запятой
из-за неточностей в системе float и стремления PHP свободно
ограничение количества отображаемых цифр для пользователя.
Других решений пока нет …