Округление целого числа в php до ближайшего верхнего целого

У меня есть целое число

$price = 19.999999995;

Я хочу, чтобы php распечатывал любые целые числа, похожие на $ price integer, до верхнего целочисленного значения, которое равно «20».

$total = ceil($price);

Я ожидаю, что приведенное выше общее значение в $ 20 будет равно, но возвращается «21».

Как я могу сделать это? и почему он возвращает 21 вместо 20.

1

Решение

Использовать round() функция.

$price = 19.999999995;
$total = round($price);
echo $total;

Как указано в документации PHP:

Обратите внимание, что «ceil» может показывать неожиданное поведение при использовании значений с плавающей запятой
из-за неточностей в системе float и стремления PHP свободно
ограничение количества отображаемых цифр для пользователя.

2

Другие решения

Других решений пока нет …