Space Base Space Base
+7 928 008-80-89
ru
  • en
  • es
  • Главная
  • Услуги
  • Портфолио
  • Библиотека
  • Контакты
  • Главная
  • Услуги
  • Портфолио
  • Библиотека
  • Контакты
  1. Библиотека
  2. PHP
  3. Округление чисел в PHP
logo

Округление чисел в PHP

14.03.2025

Округление числа в любом языке программирования может быть выполнено до целого числа или до числа с заданным количеством знаков после запятой. Также можно учитывать направление, в какую сторону должно округляться число – к большему или меньшему значению. Помимо этого, число может быть округлено в математически ближайшую сторону. Плюс, может возникнуть множество уникальных требований к тому, как должны обрабатываться и выводиться числа в приложении.

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

- round – округление до ближайшего значения;

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

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

Округление до целого числа

Все функции в качестве основного параметра используют значение с плавающей точкой. Например:

$x = 123.4393;

При выполнении функций округления, получим следующие значения:

echo ceil($x); // 124 (к большему целому значению)
echo floor($x); // 123 (к меньшему целому значению)
echo round($x); // 123 (математически к ближайшему)

В отличии о первых двух функций, round может вернуть значение или больше или меньше заданного. При математическом округлении, учитывается дробное значение округляемой части. Если оно меньше 5, округляется к меньшему. Если равно или больше 5, округление будет выполнено в большую сторону. В данном случае функция round округляет к меньшему значению, т.к. значение дробной части меньше 0.5. Если использовать значение больше, например:

$x = 123.51;

В результате округления такого значения, получим:

echo round($x); // 124

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

Если для вычислений в программе важно получить значение с какой-то фиксированной точностью, можно опять же использовать функцию round. Она имеет второй (не обязательный) параметр, определяющий точность округления. Задав его, можно получить необходимое количество знаков после запятой:

$x = 123.8393;
echo round($x, 1); // 123.8
echo round($x, 2); // 123.84
echo round($x, 3); // 123.839

Округление числа с заданным шагом

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

$x = 123.8313;
echo floor($x / 0.5) * 0.5; // В результате получим 123.5

Аналогично можно поступить, если нужно сделать с шагом 0.2:

$x = 123.8313;
echo floor($x / 0.2) * 0.2; // В результате получим 123.8

Округление до десятков, сотен, тысяч и далее

Отдельно можно выделить задачу, где необходимо округлить до каких-то круглых значений – десятков, сотен, тысяч. В данном случае, также нет необходимости выискивать специальные функции для этого. Достаточно немного математики и имеющихся возможностей языка программирования:

$x = 12345.8393;
echo round($x / 10) * 10; // получим округление до десятков 12350
echo round($x / 100) * 100; // получим округление до десятков 12300
echo round($x / 1000) * 1000; // получим округление до десятков 12000

Стоит обратить внимание, что в этом примере происходит математическое округление, поэтому в варианте с десятками происходит не просто отбрасывание единиц, а формируется число 50 вместо 40. Но этот нюанс можно также учесть, если использовать функции для округления к большему или меньшему значению.

Другие примеры округления

Если вдруг потребовалось реализовать более экзотическое округление – к большему или меньшему значению с заданным количеством знаков после запятой, потребуются дополнительные операции. Как было сказано выше, функции ceil и floor имеют только один параметр и не смогут округлить число до заданной точности.

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

$x = 123.8313;
echo ceil($x * 100) / 100; // 123.84

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

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

$x = 123.8313;
echo floor($x * 100) / 100; // 123.83

Заключение

Как можем видеть, функциональных возможностей у языка программирования PHP предостаточно. А все, что нельзя сделать одной готовой функций, всегда можно реализовать собственным программным кодом.

Автор: Антон Сенников

Дата публикации: 14.03.2015. Обновлено: 14.03.2025

Другие материалы:

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


Округление чисел в PHP


Удаление элемента в массиве PHP


Написать комментарий

Комментарии

В комментариях запрещено публиковать рекламные материалы. Все сообщения оправляются на модерацию и будут опубликованы, если не нарушают правил сайта после проверки.


коммент.

Разработка сайтов

Корпоративный сайт
Интернет-магазин
Лендинг - одностраничный сайт
Сайт-визитка
Сайт-портфолио

Проектирование

Прототип, UX-дизайн

Дизайн

UI-дизайн
Логотип

+54 911 2801-4950

info@space-base.net
+7 928 008-80-89

Web-сайты для успешного бизнеса

Web-сайты для успешного бизнеса

Главная Услуги Портфолио События Библиотека Контакты
+7 928 008-80-89 Меню
Политика в отношении обработки персональных данных © Copyright 2014 - | Space-Base

Лучшее время начать свой проект - Сейчас!

Выбраны опции:

Отправить сообщение на:

Telegram WhatsApp

Отправляя сообщение, вы даете свое согласие на
обработку песональных данных