Php округление до сотни

Округление чисел в 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.
Читайте также:  Get info about server php

Округление к большему

Функция ceil($num) – всегда округляет число в большую сторону.

echo ceil(1.1); // 2 echo ceil(1.5); // 2 echo ceil(1.6); // 2

Источник

round

Возвращает округлённое значение val с указанной точностью precision (количество цифр после запятой). Последняя может быть отрицательной или нулём (по умолчанию).

Замечание: PHP по умолчанию не может правильно обрабатывать строки типа «12,300.2». Для подробностей см. Преобразование строк в числа.

Список параметров

Количество десятичных знаков, до которых округлять

Используйте одну из этих констант для задания способа округления.

Константа Описание
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 десятичных знаков в сторону ближайшего нечетного знака.

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

Примеры

Пример #1 Пример использования round()

echo round ( 3.4 ); // 3
echo round ( 3.5 ); // 4
echo round ( 3.6 ); // 4
echo round ( 3.6 , 0 ); // 4
echo round ( 1.95583 , 2 ); // 1.96
echo round ( 1241757 , — 3 ); // 1242000
echo round ( 5.045 , 2 ); // 5.05
echo round ( 5.055 , 2 ); // 5.06
?>

Пример #2 Примеры использования параметра mode

echo round ( 9.5 , 0 , PHP_ROUND_HALF_UP ); // 10
echo round ( 9.5 , 0 , PHP_ROUND_HALF_DOWN ); // 9
echo round ( 9.5 , 0 , PHP_ROUND_HALF_EVEN ); // 10
echo round ( 9.5 , 0 , PHP_ROUND_HALF_ODD ); // 9

echo round ( 8.5 , 0 , PHP_ROUND_HALF_UP ); // 9
echo round ( 8.5 , 0 , PHP_ROUND_HALF_DOWN ); // 8
echo round ( 8.5 , 0 , PHP_ROUND_HALF_EVEN ); // 8
echo round ( 8.5 , 0 , PHP_ROUND_HALF_ODD ); // 9
?>

Пример #3 Примеры использования параметра mode с указанием точности

/* Использование PHP_ROUND_HALF_UP с точностью до 1 знака */
echo round ( 1.55 , 1 , PHP_ROUND_HALF_UP ); // 1.6
echo round ( 1.54 , 1 , PHP_ROUND_HALF_UP ); // 1.5
echo round (- 1.55 , 1 , PHP_ROUND_HALF_UP ); // -1.6
echo round (- 1.54 , 1 , PHP_ROUND_HALF_UP ); // -1.5

/* Использование PHP_ROUND_HALF_DOWN с точностью до 1 знака */
echo round ( 1.55 , 1 , PHP_ROUND_HALF_DOWN ); // 1.5
echo round ( 1.54 , 1 , PHP_ROUND_HALF_DOWN ); // 1.5
echo round (- 1.55 , 1 , PHP_ROUND_HALF_DOWN ); // -1.5
echo round (- 1.54 , 1 , PHP_ROUND_HALF_DOWN ); // -1.5

/* Использование PHP_ROUND_HALF_EVEN с точностью до 1 знака */
echo round ( 1.55 , 1 , PHP_ROUND_HALF_EVEN ); // 1.6
echo round ( 1.54 , 1 , PHP_ROUND_HALF_EVEN ); // 1.5
echo round (- 1.55 , 1 , PHP_ROUND_HALF_EVEN ); // -1.6
echo round (- 1.54 , 1 , PHP_ROUND_HALF_EVEN ); // -1.5

/* Использование PHP_ROUND_HALF_ODD с точностью до 1 знака */
echo round ( 1.55 , 1 , PHP_ROUND_HALF_ODD ); // 1.5
echo round ( 1.54 , 1 , PHP_ROUND_HALF_ODD ); // 1.5
echo round (- 1.55 , 1 , PHP_ROUND_HALF_ODD ); // -1.5
echo round (- 1.54 , 1 , PHP_ROUND_HALF_ODD ); // -1.5
?>

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

Версия Описание
5.3.0 Был добавлен параметр mode .
5.2.7 Работа функции round() была изменена в соответствии со стандартом C99.

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

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

Источник

Округление чисел в 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 

Источник

Функция round в PHP, описание и примеры

Функция round() округляет указанное дробное значение до ближайшего значения с заданным количеством знаков после запятой. Округление производится по математическим правилам. Следовательно, если округляемые разряды меньше 5, округление будет выполнено в меньшую сторону. Если же равно или больше 5, в большую сторону.

function float round (float $val [, int $precision])

Параметры функции round

$val Исходное значение с плавающей точкой.
$precision Количество знаков после запятой. Если указано отрицательное значение, указывает, до какого порядка нужно округлить число. По умолчанию, равно 0.

Примеры использования функции round

Округление до целого значения:

echo round(15.123); // 15 echo round(15.823); // 16

Округление до заданного количества знаков после запятой:

$x = 15.123787; echo round($x, 1); // 15.1 echo round($x, 2); // 15.12 echo round($x, 3); // 15.124

Округление до заданного порядка (десятки, сотни…):

$a = 12345; echo round($x, -1); // 12350 echo round($x, -2); // 12300 echo round($x, -3); // 12000

Похожие функции

ceil – округление до целого в большую сторону.

floor – округление до целого в меньшую сторону.

Источник

Оцените статью