Функция round в PHP на примерах
В некоторых случаях на сайте может потребоваться автоматическое округление числа до целого в большую или меньшую сторону. Например, нам нужно, чтобы в каталоге товаров цена указывалась кратно 100 или 50 рублям. Тогда на помощь приходят функции php: round, ceil и floor.
Округление до целого
Округлить число можно в большую или меньшую сторону. С этим справляются функции ceil и floor.
К большему значению
$a = 1,234;
echo ceil ($a); //на экране отобразится 2
К меньшему значению
$a = 3,2;
echo floor ($a); //увидим 3
С указанием количества знаков после запятой
Функция round используется, если нужно указать точность округления числа с точкой. Записывается она так:
round ( $a, [количество десятичных знаков, до которых производится округление] );
Пример кода php:
$a = 1,23432;
echo round ($a, 2); //на экране будет число с двумя знаками после запятой – 1,23
Также данная функция допускает использование третьего параметра. Это константы PHP_ROUND_HALF, которые расширяют возможности использования. _UP и _DOWN, добавленные в конце, дают программисту возможность задать точность округления в спорных моментах. Например, если случайное число будет 2,5, то оно может преобразоваться либо в 2, либо в 3.
_EVEN округлит число, учитывая десятичные знаки, до четного значения.
_ODD обладает схожим действием, но делает число нечетным.
Иначе такие манипуляции еще называют банковским округлением.
Кратно десяткам, сотням, тысячам
Если нужно не просто округлить количество знаков после запятой, а сделать число кратным определенному значению, можно воспользоваться round, указав второй параметр отрицательным. Но, как показывает практика, так не всегда получаются точные решения, поэтому рекомендуем использовать умножение и деление.
Пример: нужно $a = 208 округлить до десятков в большую сторону, чтобы получилось 210. Для этого пишем:
echo ceil ($a / 10) *10;
Сначала выполнится действие в скобках, в ходе которого получится 20,8. Далее сработает округление до большего – 21. После 21 умножается на 10 и получается необходимое значение. Для округления кратно сотням и тысячам 10 меняется на 100 и 1000.