Математичні функції є обов'язковою складовою будь-якої мови програмування. Але це не означає, що при виконанні операцій над числами ними необхідно користуватися саме так, як передбачив розробник мови. На PHP округлення в меншу сторону можна виконати через рядкові функції.
Необхідність і варіанти округлення
Причини для округлення чисел можуть бути самі різні. Найбільш затребувана - формування числових атрибутів для стилів і правил CSS. При створенні сучасних сайтів вимога динамічності - обов'язково. Вимога адаптивності - бажано. Це означає, що перерахунок розмірів картинок, тегів та інших складових каркаса сайту необхідно робити на сервері ще при формуванні сторінки.
Базові варіанти округлення в будь-якій мові обмежуються трьома функціями: математичне, в меншу або більшу сторону. На PHP програмування також має в своєму розпорядженні трьома функціями для операцій округлення: round(), floor() і ceil(). Програмування (в загальному сенсі) пропонує множити вихідне число на степінь числа 10 (101001000 10000 і т. д.) для виконання функції округлення в потрібній позиції числа. Щодо функції round() ця властивість не має значення (у неї є необов'язковий другий параметр, яким можна визначити позицію округлення).
Приклад округлення чисел в PHP
У цьому прикладі наведено класичне округлення одного і того ж числа усіма трьома базовими функціями і запропонований варіант округлення, який допускає рядкова семантика мови. Число - це теж рядок символів. Просто її алфавіт обмежений десятьма цифрами, точкою та знаками "+" і "-". Якщо розглядати експоненційне подання, то там ще є буква E.
Щодо першого числа (1) значення round() збігається з ceil(), щодо другого числа (2) збігаються результати round() і floor(). Ідеальне PHP округлення в меншу сторону пропонує варіант (3).
Рядкове округлення числа - це ідея розбити число на дві складові точці. Результат - масив. Перший елемент - ціла частина числа, другий елемент - дробова. Якщо точки немає, то немає другого елемента. Можна навіть не перевіряти. Для чисел в експоненційної формі уявлення ця ідея не годиться, але основна турбота програмування - обробляти інформацію. PHP округлення числа в бік більш затребуваний, ніж математичне або в більшу сторону. Застосувати explode() - красиво і практично.