(PHP 4, PHP 5, PHP 7)
round — Округляет число типа float
$val
[, int $precision
= 0
[, int $mode
= PHP_ROUND_HALF_UP
]] ) : float
Возвращает округлённое значение val
с указанной точностью precision
(количество цифр после запятой).
precision
может быть отрицательным или нулём (по умолчанию).
Замечание: PHP по умолчанию не может правильно обрабатывать строки типа "12,300.2". Более подробно читайте в разделе Преобразование строк в числа.
val
Значение для округления.
precision
Количество десятичных знаков, до которых производится округление
Если precision
положительный,
округление будет производиться справа от запятой.
Если precision
отрицателен,
округление будет производиться слева от запятой.
Если абсолютное значение precision
больше или равно количеству цифр, результат округления будет равен 0
mode
Используйте одну из этих констант для задания способа округления.
Константы | Описание |
---|---|
PHP_ROUND_HALF_UP |
Округляет val в большую сторону от нуля до precision десятичных знаков,
если следующий знак находится посередине. То есть округляет 1.5 в 2 и -1.5 в -2.
|
PHP_ROUND_HALF_DOWN |
Округляет val в меньшую сторону к нулю до precision десятичных знаков,
если следующий знак находится посередине. То есть округляет 1.5 в 1 и -1.5 в -1.
|
PHP_ROUND_HALF_EVEN |
Округляет val до precision десятичных знаков
в сторону ближайшего четного знака.
|
PHP_ROUND_HALF_ODD |
Округляет val до precision десятичных знаков
в сторону ближайшего нечетного знака.
|
Значение округляется до заданного значения precision
как float.
Пример #1 Пример использования round()
<?php
var_dump round(3.4); // 3
var_dump round(3.5); // 4
var_dump round(3.6); // 4
var_dump round(3.6, 0); // 4
var_dump round(1.95583, 2); // 1.96
var_dump round(1241757, -3); // 1242000
var_dump round(5.045, 2); // 5.05
var_dump round(5.055, 2); // 5.06
?>
Результат выполнения данного примера:
float(3) float(4) float(4) float(4) float(1.96) float(1242000) float(5.05) float(5.06)
Пример #2 Как параметр precision
влияет на числа с плавющей запятой
<?php
$number = 1346.21;
var_dump(round($number, 2));
var_dump(round($number, 1));
var_dump(round($number, 0));
var_dump(round($number, -1));
var_dump(round($number, -2));
var_dump(round($number, -3));
var_dump(round($number, -4));
?>
Результат выполнения данного примера:
float(1346.21) float(1346.2) float(1346) float(1350) float(1300) float(1000) float(0)
Пример #3 Примеры использования параметра mode
<?php
echo 'Rounding modes with 9.5' . PHP_EOL;
var_dump(round(9.5, 0, PHP_ROUND_HALF_UP));
var_dump(round(9.5, 0, PHP_ROUND_HALF_DOWN));
var_dump(round(9.5, 0, PHP_ROUND_HALF_EVEN));
var_dump(round(9.5, 0, PHP_ROUND_HALF_ODD));
echo 'Rounding modes with 8.5' . PHP_EOL;
var_dump(round(8.5, 0, PHP_ROUND_HALF_UP));
var_dump(round(8.5, 0, PHP_ROUND_HALF_DOWN));
var_dump(round(8.5, 0, PHP_ROUND_HALF_EVEN));
var_dump(round(8.5, 0, PHP_ROUND_HALF_ODD));
?>
Результат выполнения данного примера:
Rounding modes with 9.5 float(10) float(9) float(10) float(9) Rounding modes with 8.5 float(9) float(8) float(8) float(9)
Пример #4 Примеры использования параметра mode
с указанием точности precision
<?php
echo 'Использование PHP_ROUND_HALF_UP с точностью до 1 знака' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_UP));
var_dump(round( 1.54, 1, PHP_ROUND_HALF_UP));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_UP));
var_dump(round(-1.54, 1, PHP_ROUND_HALF_UP));
echo PHP_EOL;
echo 'Использование PHP_ROUND_HALF_DOWN с точностью до 1 знака' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_DOWN));
var_dump(round( 1.54, 1, PHP_ROUND_HALF_DOWN));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_DOWN));
var_dump(round(-1.54, 1, PHP_ROUND_HALF_DOWN));
echo PHP_EOL;
echo 'Использование PHP_ROUND_HALF_EVEN с точностью до 1 знака' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_EVEN));
var_dump(round( 1.54, 1, PHP_ROUND_HALF_EVEN));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_EVEN));
var_dump(round(-1.54, 1, PHP_ROUND_HALF_EVEN));
echo PHP_EOL;
echo 'Использование PHP_ROUND_HALF_ODD с точностью до 1 знака' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_ODD));
var_dump(round( 1.54, 1, PHP_ROUND_HALF_ODD));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_ODD));
var_dump(round(-1.54, 1, PHP_ROUND_HALF_ODD));
?>
Результат выполнения данного примера:
Использование PHP_ROUND_HALF_UP с точностью до 1 знака float(1.6) float(1.5) float(-1.6) float(-1.5) Использование PHP_ROUND_HALF_DOWN с точностью до 1 знака float(1.5) float(1.5) float(-1.5) float(-1.5) Использование PHP_ROUND_HALF_EVEN с точностью до 1 знака float(1.6) float(1.5) float(-1.6) float(-1.5) Использование PHP_ROUND_HALF_ODD с точностью до 1 знака float(1.5) float(1.5) float(-1.5) float(-1.5)
Версия | Описание |
---|---|
5.3.0 |
Был добавлен параметр mode .
|
5.2.7 | Работа функции round() была изменена в соответствии со стандартом C99. |