round

(PHP 4, PHP 5, PHP 7, PHP 8)

roundОкругляет число типа float

Описание

round(int|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)

Смотрите также

  • ceil() - Округляет дробь в большую сторону
  • floor() - Округляет дробь в меньшую сторону
  • number_format() - Форматирует число с разделением групп