(PHP 4, PHP 5, PHP 7, PHP 8)
round — Округляет число типа float
$num
, int $precision
= 0, int $mode
= PHP_ROUND_HALF_UP
): float
Возвращает округлённое значение num
с указанной точностью precision
(количество цифр после запятой).
precision
может быть отрицательным или нулём (по умолчанию).
num
Значение для округления.
precision
Количество десятичных знаков, до которых производится округление
Если precision
положительный, num
округляется до точности precision
цифр после запятой.
Если precision
отрицателен, num
округляется до точности precision
цифр перед десятичной запятой,
то есть до ближайшего кратного pow(10, -$precision)
,
например для precision
равной -1 num
округляется до десятков,
для precision
равной -2 до сотен и т.д.
mode
Используйте одну из этих констант для задания способа округления.
Константы | Описание |
---|---|
PHP_ROUND_HALF_UP |
Округляет num от нуля, когда следующий знак находится посередине.
То есть округляет 1.5 в 2 и -1.5 в -2.
|
PHP_ROUND_HALF_DOWN |
Округляет num к нулю, когда следующий знак находится посередине.
То есть округляет 1.5 в 1 и -1.5 в -1.
|
PHP_ROUND_HALF_EVEN |
Округляет num до ближайшего чётного значения, когда следующий знак находится посередине.
То есть округляет 1.5 и 2.5 в 2.
|
PHP_ROUND_HALF_ODD |
Округляет num до ближайшего нечётного значения, когда следующий знак находится посередине.
То есть округляет 1.5 в 1 и 2.5 в 3.
|
Значение округляется до заданного значения precision
как float.
Версия | Описание |
---|---|
8.0.0 |
num больше не принимает внутренние объекты,
поддерживающие числовое преобразование.
|
Пример #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)