В PostgreSQL, floor()
функцията се използва за закръгляне на число до най-близкото цяло число.
По същество това е обратното на ceiling()
, което закръглява число нагоре .
Също така е подобно на round()
, с изключение на това, че закръглява само надолу. round()
функцията ще закръгли нагоре или надолу според изискванията.
Синтаксис
Синтаксисът е така:
floor(dp or numeric)
Където dp
обозначава double precision
.
Типът на връщане е същият като типа на входа.
Пример
Ето пример за демонстриране на използването му.
SELECT floor(3.99);
Резултат:
3
В този случай дробните секунди са 99 и числото се закръглява надолу до най-близкото цяло число.
Не е изненадващо, че получавам същия резултат, ако намаля частичните секунди, за да кажа 15.
SELECT floor(3.15);
Резултат:
3
Отрицателни числа
Ето пример, който използва отрицателни числа.
SELECT
floor(-3.99),
floor(-3.15);
Резултат:
<пред> етаж | етаж-------+------- -4 | -4Floor() срещу Round()
Ето пример, който илюстрира разликата между floor()
и round()
.
SELECT
floor(3.99),
round(3.99);
Резултат:
<пред> етаж | кръг-------+------- 3 | 4Въпреки това, ако намаля частичните секунди до под 50, и двете връщат един и същ резултат.
SELECT
floor(3.49),
round(3.49);
Резултат:
<пред> етаж | кръг-------+------- 3 | 3Под() срещу Таван()
Postgres също има ceiling()
функция, която е подобна на floor()
с изключение на това, че винаги закръглява числото нагоре .
Ето пример, който показва и двата синтаксиса един до друг.
SELECT
ceiling(12.80),
floor(12.80);
Резултат:
<пред> таван | етаж--------+------- 13 | 12И ето един пример, който използва отрицателни стойности.
SELECT
ceiling(-12.30),
floor(-12.30);
Резултат:
<пред> таван | етаж--------+------- -12 | -13