PHP Округление round, ceil, floor

В языке программирования есть несколько видов округления.

1 математическое округление — когда округление происходит в ближайшую сторону
2 в большую сторону
3 в меньшую сторону

В PHP для округления чисел применяются следующие функции:

  • round – округление до ближайшего значения
  • ceil – округление до ближайшего значения в большую сторону
  • floor – округление до ближайшего значения в меньшую сторону

Все функции, если им не передать дополнительных параметров будут производить округление до целого числа, например:

Функция round

По умолчанию функция round производит округление до целого числа, согласно математическим правилам округления чисел.

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

Существует возможность уточнения: будет ли число округляться до целого числа, или до заданного количества знаков после запятой (для этого необходимо передать второй параметр), но это уточнение (параметр) принимает только функция round;

Рассмотрим, как отработает функция на конкретном примере:

Второй параметр может быть отрицательным

Способ округления

Функция round может принимать еще 1 параметр, отвечающий за способ округления

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

Функция floor

floor() — округление в меньшую сторону

Принимает один параметр для передачи числа. Передает целое число, округлённое в меньшую сторону.

https://web-answers.ru/php/matematika-php-round-ne-rabotaet-dolzhnym-obrazom.htm

Функция ceil

ceil() — округление в большую сторону

Принимает один параметр для передачи числа. Передает целое число, округлённое в большую сторону.

Дополнительно:

ceil() и floor() имеют только один параметр и не смогут округлить число до заданной точности, но есть способ, позволяющий округлить число в большую или меньшую сторону до заданного количества знаков после запятой.

В таких случаях можно выполнить умножение числа, чтобы затем округлить нужным способом. Например, число нужно округлить до большего значения с двумя знаками после запятой.

В результате получим 123.84, хотя аналогичное округление функцией round в данном случае вернуло бы 123.83.

Так же можно поступить, если нужно округлить до меньшего значения с заданной точностью:

В статье частично использовался материал с сайтов:

http://abcvg.com/17862-funkcii-round-ceil-i-floor-okruglenie-chisla-na-php.html

http://xn--80afqpaigicolm.xn--p1ai/php/okruglenie-chisel-v-php/

https://space-base.ru/library/?book=66

https://web-answers.ru/php/matematika-php-round-ne-rabotaet-dolzhnym-obrazom.htm

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *