Справочники, инструменты, документация

PHP: Округление чисел

В PHP для округления чисел применяются следующие функции.

Округление к ближайшему целому

Функция round($num, $precision) возвращает округлённое значение $num с указанной точностью $precision (количество цифр после запятой).

echo round(111.455); // 111

// Один знак после запятой
echo round(111.455, 1); // 111.5

// Два знака после запятой
echo round(111.455, 2); // 111.46

Также функция round() может округлять целую часть числа, для этого нужно указать отрицательный $precision.

// Один знак перед запятой
echo round(111.455, -1); // 110

// Два знака перед запятой
echo round(111.455, -2); // 100

Третьим аргументом функции можно повлиять способ округления.

  • PHP_ROUND_HALF_UP - Округляет от нуля, когда следующий знак находится посередине. То есть округляет 1.5 в 2 и -1.5 в -2.
  • PHP_ROUND_HALF_DOWN - Округляет к нулю, когда следующий знак находится посередине. То есть округляет 1.5 в 1 и -1.5 в -1.
  • PHP_ROUND_HALF_EVEN - Округляет до ближайшего чётного значения, когда следующий знак находится посередине. То есть округляет 1.5 и 2.5 в 2.
  • PHP_ROUND_HALF_ODD - Округляет до ближайшего нечётного значения, когда следующий знак находится посередине. То есть округляет 1.5 в 1 и 2.5 в 3.

Округление к большему

Функция ceil($num) – всегда округляет число в большую сторону.

echo ceil(1.1); // 2
echo ceil(1.5); // 2
echo ceil(1.6); // 2

Округление к меньшему

Функция floor() – округляет число в меньшую сторону.

echo floor(1.1); // 1
echo floor(1.5); // 1
echo floor(1.6); // 1

Как всегда выводить числа после запятой

Если требуется всегда выводить числа после запятой .00, то можно применить функцию number_format().

$num = "100.01"; 
echo number_format($num, 2, '.', ''); // 100.01

$num = "100"; 
echo number_format($num, 2, '.', ''); // 100.00