array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.round.php', 1 => 'round', ), 'up' => array ( 0 => 'ref.math.php', 1 => 'Математические функции', ), 'prev' => array ( 0 => 'function.rad2deg.php', 1 => 'rad2deg', ), 'next' => array ( 0 => 'function.sin.php', 1 => 'sin', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/math/functions/round.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
round — Округляет число с плавающей точкой (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)