Округление чисел в 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
PHP

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

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

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

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

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
PHP

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

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

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

$num = "100.01"; 
echo number_format($num, 2, '.', ''); // 100.01
 
$num = "100"; 
echo number_format($num, 2, '.', ''); // 100.00
PHP
01.08.2021, обновлено 23.09.2021
20036

Комментарии 2

Макий Семен Макий Семен
21 января 2022 в 17:57
0
Внимание!
Функция number_format не просто форматирует, но округляет.
Например:
$num = "100.378";
echo number_format($num, 2, '.', '');
Выведет не 100.37, а 100.38
Поправьте плиз в статье.
Teymur Nurullaev Teymur Nurullaev
19 февраля 2023 в 15:24
0
function _round($number, $total_decimals) {
$number = (string)$number;
if($number === '') {
$number = '0';
}
if(strpos($number, '.') === false) {
$number .= '.';
}
$number_arr = explode('.', $number);
$decimals = substr($number_arr[1], 0, $total_decimals);
if($decimals === false) {
$decimals = '0';
}
$return = '';
if($total_decimals == 0) {
$return = $number_arr[0];
} else {
if(strlen($decimals) < $total_decimals) {
$decimals = str_pad($decimals, $total_decimals, '0', STR_PAD_RIGHT);
}
$return = $number_arr[0] . '.' . $decimals;
}
return $return;
}
echo _round(10.49609090, 2);
>> 10.49

, чтобы добавить комментарий.

Другие публикации

Работа с массивами PHP – создание, наполнение, удаление
Основные примеры работы с массивами PHP. Создание, наполнение, извлечение удаление значений.
89109
+10
Преобразование цветов в PHP
Несколько примеров как перевести цвета из HEX в RGB и обратно с помощью PHP.
14746
0
Обработка изображений в PHP
Библиотека GD дает возможность работать с изображениями в PHP. Далее представлены примеры как изменить размер, вырезать часть изображения и т.д.
53525
+15
Работа с FTP в PHP
Протокол FTP – предназначен для передачи файлов на удаленный хост. В PHP функции для работы с FTP как правило всегда доступны и не требуется установка дополнительного расширения.
15507
+2
Поиск файлов в PHP
Для поиска файлов на сервере хорошо подходит функция glob(), которая возвращает список файлов по заданной маске, например...
20913
+1
Работа с JSON в PHP
JSON (JavaScript Object Notation) – текстовый формат обмена данными, основанный на JavaScript, который представляет собой набор пар {ключ: значение}. Значение может быть массивом, числом, строкой и...
102676
+13