- round
- Parameters
- Return Values
- Changelog
- Examples
- See Also
- PHP round() Function
- Syntax
- Parameter Values
- Technical Details
- More Examples
- Example
- Example
- COLOR PICKER
- Report Error
- Thank You For Helping Us!
- Округление чисел в PHP
- Основные функции окргуления до целого числа встроенные в PHP
- Математическое округление до целого
- Округление дробного числа до x знаков после запятой
- Задание способа округления функции round
- Банковское округление, до ближайшего четного числа
- Округление целого числа кратного 10, 100
- Округление до 5
- Округление чисел в PHP
- Округление к ближайшему целому
- Округление к большему
round
Возвращает округленное значение num к указанной precision (количество знаков после запятой). precision также может быть отрицательной или нулевой (по умолчанию).
Parameters
Необязательное количество десятичных цифр для округления до.
Если precision положительна, num округляется до precision значащих цифр после десятичной точки.
Если precision является отрицательной, num округляется до precision значащих цифр перед десятичной точкой, т.е. до ближайшего кратного pow(10, -precision) , например , для precision -1 num округляется до десятков, для precision из — От 2 до сотен и т. Д.
Используйте одну из следующих констант для указания режима,в котором происходит округление.
Constants | Description |
---|---|
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. |
Return Values
Значение, округленное до заданной precision как число с плавающей запятой.
Changelog
Version | Description |
---|---|
8.0.0 | num больше не принимает внутренние объекты, поддерживающие числовое преобразование. |
Examples
Пример # 1 раунд () примеры
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 влияет на число с плавающей запятой
$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
echo 'Rounding modes with 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 'Rounding modes with 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)); ?>
Выводится приведенный выше пример:
Rounding modes with 9.5 float(10) float(9) float(10) float(9) Rounding modes with 8.5 float(9) float(8) float(8) float(9)
Пример # 4 mode с примерами precision
echo 'Using PHP_ROUND_HALF_UP with 1 decimal digit precision' . 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 'Using PHP_ROUND_HALF_DOWN with 1 decimal digit precision' . 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 'Using PHP_ROUND_HALF_EVEN with 1 decimal digit precision' . 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 'Using PHP_ROUND_HALF_ODD with 1 decimal digit precision' . PHP_EOL; var_dump(round( 1.55, 1, PHP_ROUND_HALF_ODD)); var_dump(round(-1.55, 1, PHP_ROUND_HALF_ODD)); ?>
Выводится приведенный выше пример:
Using PHP_ROUND_HALF_UP with 1 decimal digit precision float(1.6) float(-1.6) Using PHP_ROUND_HALF_DOWN with 1 decimal digit precision float(1.5) float(-1.5) Using PHP_ROUND_HALF_EVEN with 1 decimal digit precision float(1.6) float(-1.6) Using PHP_ROUND_HALF_ODD with 1 decimal digit precision float(1.5) float(-1.5)
See Also
- ceil () — округляет дроби вверх
- floor () — округление дробей вниз
- number_format () — Форматирует число сгруппированными тысячами
PHP 8.2
(PHP 4,5,7,8)rewinddir directory handle Сброс потока каталогов,на который указывает dir_handle начало ресурса Directory handle,открытого ранее
(PHP 4,5,7,8)rsort an array in descending order Сортирует массив по местам по значениям в порядке убывания.
(PHP 4,5,7,8)rtrim Удалить пробелы (или другие символы)из конца строки Эта функция возвращает строку с удаленными пробелами (или другими символами).
PHP round() Function
Tip: To round a number UP to the nearest integer, look at the ceil() function.
Tip: To round a number DOWN to the nearest integer, look at the floor() function.
Syntax
Parameter Values
- PHP_ROUND_HALF_UP — Default. Rounds number up to precision decimal, when it is half way there. Rounds 1.5 to 2 and -1.5 to -2
- PHP_ROUND_HALF_DOWN — Round number down to precision decimal places, when it is half way there. Rounds 1.5 to 1 and -1.5 to -1
- PHP_ROUND_HALF_EVEN — Round number to precision decimal places towards the next even value
- PHP_ROUND_HALF_ODD — Round number to precision decimal places towards the next odd value
Technical Details
Return Value: | The rounded value |
---|---|
Return Type: | Float |
PHP Version: | 4+ |
PHP Changelog: | PHP 5.3: The mode parameter was added |
More Examples
Example
Round numbers to two decimals:
Example
Round numbers using the constants:
COLOR PICKER
Report Error
If you want to report an error, or if you want to make a suggestion, do not hesitate to send us an e-mail:
Thank You For Helping Us!
Your message has been sent to W3Schools.
Top Tutorials
Top References
Top Examples
Get Certified
W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.
Округление чисел в PHP
Округление чисел проводится согласно определенным способам округления.
Например, существует математическое округление, округление в большую сторону, меньшую сторону, до десятков, банковское …, способов как округлить числов достаточно много.
Основные функции окргуления до целого числа встроенные в PHP
// 4 тестовых значения $value1 = 1.7; $value2 = 1.4; $value3 = 12345678912345.999999999999999999999999999999999; $value4 = 12345678912345.99; // Округление в большую сторону echo ceil($value1); // 2 echo ceil($value2); // 2 echo ceil($value3); // 12345678912346 echo ceil($value4); // 12345678912346 // Округление в меньшую сторону echo floor($value1); // 1 echo floor($value2); // 1 echo floor($value3); // 12345678912346 - обратить внимание echo floor($value4); // 12345678912345
Для обычных данных из прайс-листа данные функции вполне подходят, но для анализа статистических данных лучше использовать специализированные решения.
Математическое округление до целого
Функция round предназначена для округления дробных чисел, типа float.
По умолчанию округление производится до целого числа, согласно математическим правилам округления чисел.
echo round($value1); // 2 echo round($value2); // 1 echo round($value3); // 12345678912346 echo round($value4); // 12345678912346
Округление дробного числа до x знаков после запятой
Вторым параметром функции round является количество знаков после запятой, которое может принимать отрицательные значения.
// данные для проверки $value1 = 1.7; $value2 = 1.74; $value3 = 12345.999999999999999999999999999999999; $value4 = 12345.88; echo round($value1, 2); // 1.7 - нули не добавляются 1.70 echo round($value2, 1); // 1.7 - округление по умолчанию математическое echo round($value3, 5); // 12346 - выход за допустимый диапазон, округление до целого echo round($value4, -1); // 12350 - округление до десятков echo round($value4, -2); // 12300 - округление до сотен echo round($value4, -4); // 10000 - округление до десяти тысяч echo round($value4, -5); // 0 - значение не определено, вышли за диапазон
Задание способа округления функции round
Третий параметр (константа) функции round задает способ округления
PHP_ROUND_HALF_UP — Округляет val в большую сторону от нуля до precision десятичных знаков, если следующий знак находится посередине. Т.е. округляет 1.5 в 2 и -1.5 в -2.
PHP_ROUND_HALF_DOWN — Округляет val в меньшую сторону к нулю до precision десятичных знаков, если следующий знак находится посередине. Т.е. округляет 1.5 в 1 и -1.5 в -1.
PHP_ROUND_HALF_EVEN — Округляет val до precision десятичных знаков в сторону ближайшего четного знака.
PHP_ROUND_HALF_ODD — Округляет val до precision десятичных знаков в сторону ближайшего нечетного знака.
Банковское округление, до ближайшего четного числа
Банковское округление (англ. banker’s rounding) — округление к ближайшему чётному, то есть 2,5 ? 2, 3,5 ? 4
Используя константу PHP_ROUND_HALF_EVEN функции round и округление до целого, напишем способ банковского округления числа на php.
$value1 = 2.5; $value2 = 3.5; echo round($value1, 0, PHP_ROUND_HALF_EVEN); // 2 echo round($value2, 0, PHP_ROUND_HALF_EVEN); // 4
Округление целого числа кратного 10, 100
$value1 = 104; $value2 = 111.5; $value3 = 144; $value4 = 1; // Используя функцию round, не всегда ожидаемое поведение // Лучше использовать разделить и умножить на 10, как в функции ceil ниже // до 10 echo round($value1, -1); // 100 echo round($value2, -1); // 110 echo round($value3, -1); // 140 echo round($value4, -1); // 0 - выход за диапазон // до 100 echo round($value1, -2); // 100 echo round($value2, -2); // 110 echo round($value3, -2); // 140 echo round($value4, -2); // 0 - вместо округления, 0 // Функция ceil выдает ожидаемый результат // до 10 echo ceil($value1/10) * 10; // 110 echo ceil($value2/10) * 10; // 120 echo ceil($value3/10) * 10; // 150 echo ceil($value4/10) * 10; // 10 // до 100 echo ceil($value1/100) * 100; // 200 echo ceil($value2/100) * 100; // 200 echo ceil($value3/100) * 100; // 200 echo ceil($value4/100) * 100; // 100
Округление до 5
Пример округления до 5 приведен для функции ceil, для round и floor — аналогично.
$value1 = 104; $value2 = 105; $value3 = 150; $value4 = 200; echo ceil($value1/5) * 5; // 105 echo ceil($value2/5) * 5; // 105 echo ceil($value3/5) * 5; // 150 echo ceil($value4/5) * 5; // 200
Данный пример округления кратного 5 встречается наиболее часто, так же существуют варианты когда необходимо не включать само число
echo ceil(($value2+5/2)/5)*5; // 110 вместо 105
или нужно окргулить до ближайшего целого числа, кратного 5
// значения $n = 50.25; $x = 5; // округление до ближайшего числа кратного 5 echo (round($n)%$x === 0) ? round($n) : round(($n+$x/2)/$x)*$x; // 50 // округление вначале до целого, после до ближайшего кратного 5 echo (ceil($n)%$x === 0) ? ceil($n) : round(($n+$x/2)/$x)*$x; // 55
Округление чисел в PHP
В PHP для округления чисел применяются следующие функции:
Округление к ближайшему целому
Функция round($num, $precision) возвращает округлённое значение $num с указанной точностью $precision (количество цифр после запятой).
echo round(111.455); // 111 // Один знак после запятой echo round(111.455, 1); // 111.5 // Два знака после запятой echo round(111.455, 2); // 111.46
Также функция round() может округлять целую часть числа, для этого нужно указать отрицательный $precision .
// Один знак перед запятой echo round(111.455, -1); // 110 // Два знака перед запятой echo round(111.455, -2); // 100
Третьим аргументом функции можно повлиять способ округления.
PHP_ROUND_HALF_UP | Округляет от нуля, когда следующий знак находится посередине. То есть округляет 1.5 в 2 и -1.5 в -2. |
PHP_ROUND_HALF_DOWN | Округляет к нулю, когда следующий знак находится посередине. То есть округляет 1.5 в 1 и -1.5 в -1. |
PHP_ROUND_HALF_EVEN | Округляет до ближайшего чётного значения, когда следующий знак находится посередине. То есть округляет 1.5 и 2.5 в 2. |
PHP_ROUND_HALF_ODD | Округляет до ближайшего нечётного значения, когда следующий знак находится посередине. То есть округляет 1.5 в 1 и 2.5 в 3. |
Округление к большему
Функция ceil($num) – всегда округляет число в большую сторону.
echo ceil(1.1); // 2 echo ceil(1.5); // 2 echo ceil(1.6); // 2