round
(PHP 4, PHP 5, PHP 7)
round — Округляет число типа float
Описание
$val
, int $precision
= 0
, int $mode
= PHP_ROUND_HALF_UP
) : float
Возвращает округлённое значение val
с указанной точностью precision
(количество цифр после запятой).
precision
может быть отрицательным или нулём (по умолчанию).
Список параметров
-
val
-
Значение для округления.
-
precision
-
Количество десятичных знаков, до которых производится округление
Если
precision
положительный,val
округляется до точностиprecision
цифр после запятой.Если
precision
отрицателен,val
округляется до точностиprecision
цифр перед десятичной запятой, то есть до ближайшего кратногоpow(10, -precision)
, например дляprecision
равной -1val
округляется до десятков, дляprecision
равной -2 до сотен и т.д. -
mode
-
Используйте одну из этих констант для задания способа округления.
Константы Описание PHP_ROUND_HALF_UP
Округляет val
от нуля, когда следующий знак находится посередине. То есть округляет 1.5 в 2 и -1.5 в -2.PHP_ROUND_HALF_DOWN
Округляет val
к нулю, когда следующий знак находится посередине. То есть округляет 1.5 в 1 и -1.5 в -1.PHP_ROUND_HALF_EVEN
Округляет val
до ближайшего четного значения, когда следующий знак находится посередине. То есть округляет 1.5 и 2.5 в 2.PHP_ROUND_HALF_ODD
Округляет val
до ближайшего нечетного значения, когда следующий знак находится посередине. То есть округляет 1.5 и 2.5 в 3.
Возвращаемые значения
Значение округляется до заданного значения precision
как float.
Примеры
Пример #1 Пример использования round()
<?php
var_dump(round(3.4));
var_dump(round(3.5));
var_dump(round(3.6));
var_dump(round(3.6, 0));
var_dump(round(5.045, 2));
var_dump(round(5.055, 2));
var_dump(round(345, -2));
var_dump(round(345, -3));
var_dump(round(678, -2));
var_dump(round(678, -3));
?>
Результат выполнения данного примера:
float(3) float(4) float(4) float(4) float(5.05) float(5.06) float(300) float(0) float(700) float(1000)
Пример #2 Как параметр precision
влияет на числа с плавющей запятой
<?php
$number = 135.79;
var_dump(round($number, 3));
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));
?>
Результат выполнения данного примера:
float(135.79) float(135.79) float(135.8) float(136) float(140) float(100) float(0)
Пример #3 Примеры использования параметра mode
<?php
echo 'Режимы округления с 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 PHP_EOL;
echo 'Режимы округления с 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));
?>
Результат выполнения данного примера:
Режимы округления с 9.5 float(10) float(9) float(10) float(9) Режимы округления с 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.55, 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.55, 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.55, 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.55, 1, PHP_ROUND_HALF_ODD));
?>
Результат выполнения данного примера:
Использование PHP_ROUND_HALF_UP с точностью до 1 знака float(1.6) float(-1.6) Использование PHP_ROUND_HALF_DOWN с точностью до 1 знака float(1.5) float(-1.5) Использование PHP_ROUND_HALF_EVEN с точностью до 1 знака float(1.6) float(-1.6) Использование PHP_ROUND_HALF_ODD с точностью до 1 знака float(1.5) float(-1.5)
Смотрите также
- ceil() - Округляет дробь в большую сторону
- floor() - Округляет дробь в меньшую сторону
- number_format() - Форматирует число с разделением групп