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.

Возвращаемые значения

Возвращает в виде числа с плавающей точкой (float) значение, округлённое до заданной параметром precision точности.

Список изменений

Версия Описание
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 'Округление с точностью до 1 знака с константой PHP_ROUND_HALF_UP в качестве значения режима округления' . 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
'Округление с точностью до 1 знака с константой PHP_ROUND_HALF_DOWN в качестве значения режима округления' . 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
'Округление с точностью до 1 знака с константой PHP_ROUND_HALF_EVEN в качестве значения режима округления' . 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
'Округление с точностью до 1 знака с константой PHP_ROUND_HALF_ODD в качестве значения режима округления' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_ODD));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_ODD));

?>

Результат выполнения приведённого примера:

Округление с точностью до 1 знака с константой PHP_ROUND_HALF_UP в качестве значения режима округления
float(1.6)
float(-1.6)

Округление с точностью до 1 знака с константой PHP_ROUND_HALF_DOWN в качестве значения режима округления
float(1.5)
float(-1.5)

Округление с точностью до 1 знака с константой PHP_ROUND_HALF_EVEN в качестве значения режима округления
float(1.6)
float(-1.6)

Округление с точностью до 1 знака с константой PHP_ROUND_HALF_ODD в качестве значения режима округления
float(1.5)
float(-1.5)

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

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