Математические функции

FLOOR - предыдущее целое число

Как на счет ближайшего целого числа, меньшего или равного какого-то значения?

Для этого тоже есть отдельная функция - FLOOR:

SELECT floor (2.1) AS "floor(2.1)",
       ceil (2.1) AS "ceil(2.1)",
       floor (2.6) AS "floor(2.6)",
       ceil (2.6) AS "ceil(2.6)"
#floor(2.1)ceil(2.1)floor(2.6)ceil(2.6)
12323

Если вызвать функцию от целого числа, то получим это же самое число:

SELECT floor (2) AS "floor(2)"
#floor(2)
12

При вызове от отрицательного числа функция по прежнему возвращает ближейшее меньшее целое число:

SELECT floor (-2.1) AS "floor(-2.1)",
       ceil (-2.1) AS "ceil(-2.1)",
       floor (-2.6) AS "floor(-2.6)",
       ceil (-2.6) AS "ceil(-2.6)"
#floor(-2.1)ceil(-2.1)floor(-2.6)ceil(-2.6)
1-3-2-3-2

Сравнение TRUNC и FLOOR

На первый взгляд можно подумать, что функции TRUNC и FLOOR ведут себя одинаково. TRUNC отбрасывает дробную часть, FLOOR - округляет в меньшую сторону.

SELECT floor(2.4), trunc (2.4)
#floortrunc
122

Различия начинают проявляться при работе с отрицательными числами:

SELECT floor(-2.4), trunc (-2.4)
#floortrunc
1-3-2
ПредыдущаяСледующая