Математические функции являются обязательной составляющей любого языка программирования. Но это не означает, что при выполнении операций над числами необходимо ими пользоваться именно так, как предусмотрел разработчик языка. На PHP округление в меньшую сторону можно выполнить через строчные функции.
Необходимость и варианты округления
Причины для округления чисел могут быть самые разные. Самая востребованная — формирование численных атрибутов для стилей и правил CSS.
При создании современных сайтов требование динамичности — обязательно. Требование адаптивности — желательно. Это означает, что перерасчет размеров картинок, тегов и других составляющих каркаса сайта необходимо делать на сервере еще при формировании страницы.
Базовые варианты округления в любом языке ограничиваются тремя функциями: математическое, в меньшую или большую сторону.
На PHP программирование также располагает тремя функциями для операций округления: round(), floor() и ceil().
Программирование (в общем смысле) предлагает умножать исходное число на степень числа 10 (10, 100, 1000, 10000 и т. д.) для выполнения функции округления в нужной позиции числа. В отношении функции round() это свойство не имеет значения (у нее есть необязательный второй параметр, которым можно определить позицию округления).
Пример округления чисел в PHP
В данном примере приведено классическое округление одного и того же числа всеми тремя базовыми функциями и предложен вариант округления, который допускает строчная семантика языка. Число — это тоже строка символов. Просто ее алфавит ограничен десятью цифрами, точкой и знаками «+» и «-«. Если рассматривать экспоненциальное представление, то там еще есть буква E.
В отношении первого числа (1) значение round() совпадает с ceil(), в отношении второго числа (2) совпадают результаты round() и floor(). Идеальное PHP округление в меньшую сторону предлагает вариант (3).
Строчное округление числа — это идея разбить число на две составляющие по точке. Результат — массив. Первый элемент — целая часть числа, второй элемент — дробная. Если точки нет, то нет второго элемента. Можно даже не проверять.
Для чисел в экспоненциальной форме представления эта идея не годится, но основная забота программирования — обрабатывать информацию. PHP округление числа в меньшую сторону более востребовано, чем математическое или в большую сторону. Применить explode() — красиво и практично.