round

(PHP 4, PHP 5, PHP 7)

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

Описание

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 равной -1 val округляется до десятков, для 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.60));
var_dump(round(5.0452));
var_dump(round(5.0552));
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($number3));
var_dump(round($number2));
var_dump(round($number1));
var_dump(round($number0));
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.50PHP_ROUND_HALF_UP));
var_dump(round(9.50PHP_ROUND_HALF_DOWN));
var_dump(round(9.50PHP_ROUND_HALF_EVEN));
var_dump(round(9.50PHP_ROUND_HALF_ODD));

echo 
PHP_EOL;
echo 
'Режимы округления с 8.5' PHP_EOL;
var_dump(round(8.50PHP_ROUND_HALF_UP));
var_dump(round(8.50PHP_ROUND_HALF_DOWN));
var_dump(round(8.50PHP_ROUND_HALF_EVEN));
var_dump(round(8.50PHP_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(round1.551PHP_ROUND_HALF_UP));
var_dump(round(-1.551PHP_ROUND_HALF_UP));

echo 
PHP_EOL;
echo 
'Использование PHP_ROUND_HALF_DOWN с точностью до 1 знака' PHP_EOL;
var_dump(round1.551PHP_ROUND_HALF_DOWN));
var_dump(round(-1.551PHP_ROUND_HALF_DOWN));

echo 
PHP_EOL;
echo 
'Использование PHP_ROUND_HALF_EVEN с точностью до 1 знака' PHP_EOL;
var_dump(round1.551PHP_ROUND_HALF_EVEN));
var_dump(round(-1.551PHP_ROUND_HALF_EVEN));

echo 
PHP_EOL;
echo 
'Использование PHP_ROUND_HALF_ODD с точностью до 1 знака' PHP_EOL;
var_dump(round1.551PHP_ROUND_HALF_ODD));
var_dump(round(-1.551PHP_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() - Форматирует число с разделением групп