Floor: примеры (PHP)

Округление в меньшую сторону функцией floor в PHP
Раздел: Математические функции
floor(int|float $num): float
PHP функция floor: описание и синтаксис

Функция floor в PHP производит округление дробного числа в меньшую сторону. Возвращает ближайшее целое число, которое меньше или равно переданному значению.

Используется в задачах, требующих округления вниз: финансовые расчеты, разбиение на страницы, дискретизация данных.

Синтаксис
floor(int|float $num): float

Аргумент $num - число для округления. Принимает значения типов int или float. Возвращает число типа float.

Базовые примеры округления
Стандартное использование
echo floor(4.3); // 4
echo floor(9.999); // 9
echo floor(-3.14); // -4
4
9
-4
С целыми числами
echo floor(5); // 5
echo floor(-2); // -2
5
-2
Похожие функции в PHP

ceil() - округляет число вверх. Применяется, когда необходим минимальный целый предел.

round() - округляет число по математическим правилам. Используется для стандартного округления.

intval() - возвращает целочисленное значение переменной, отбрасывая дробную часть. Разница с floor проявляется с отрицательными числами.

echo intval(-3.14); // -3
echo floor(-3.14); // -4
-3
-4
Аналоги в других языках
Python: math.floor()
import math
print(math.floor(4.7)) # 4
print(math.floor(-4.7)) # -5
4
-5
JavaScript: Math.floor()
console.log(Math.floor(5.95)); // 5
console.log(Math.floor(-5.95)); // -6
5
-6
MySQL: FLOOR()
SELECT FLOOR(12.34), FLOOR(-12.34);
12, -13
Типичные ошибки
Ожидание целого типа

Функция возвращает float, даже для целых аргументов.

$result = floor(5);
var_dump($result);
float(5)
Некорректные типы данных
echo floor(\"hello\");
Warning: floor() expects parameter 1 to be int|float, string given
Изменения в версиях PHP

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

// PHP 7.4
floor(\"10.5\"); // float(10)
// PHP 8.0
floor(\"10.5\"); // TypeError
Расширенные примеры
Пагинация
$totalItems = 47;
$itemsPerPage = 10;
$totalPages = floor($totalItems / $itemsPerPage);
echo $totalPages; // 4
4
Преобразование временного интервала
$seconds = 3672;
$hours = floor($seconds / 3600);
echo $hours; // 1
1
Работа с денежными единицами
$price = 19.99;
$wholeUnits = floor($price);
echo $wholeUnits; // 19
19
Создание целочисленных ключей
$values = [1.2, 3.7, 5.1];
$floored = array_map('floor', $values);
print_r($floored);
Array
(
    [0] => 1
    [1] => 3
    [2] => 5
)

PHP floor function comments

En
Floor Rounds fractions down