В PostgreSQL, ceiling()
Функцията се използва за закръгляне на число до най-близкото цяло число.
Това е подобно на round()
, с изключение на това, че закръглява само нагоре. round()
функцията ще закръгли нагоре или надолу според изискванията.
Също така е подобно на floor()
, с изключение на това floor()
закръгля надолу вместо нагоре.
Синтаксис
ceiling()
функцията може да се използва по един от следните начини:
ceil(dp or numeric)
ceiling(dp or numeric)
Където dp
обозначава double precision
.
Типът на връщане е същият като типа на входа.
И двата синтаксиса работят абсолютно еднакво. Първият синтаксис е просто по-сбит начин да го направите.
Пример
Ето пример за демонстриране на използването му.
SELECT ceiling(12.10);
Резултат:
13
В този случай дробните секунди са 10 и числото се закръглява до най-близкото цяло число.
Вероятно се разбира от само себе си, но ако увелича частите от секундите до 50, това пак закръглява нагоре.
SELECT ceiling(12.70);
Резултат:
13
Отрицателни числа
Ето пример, който използва отрицателни числа.
SELECT
ceiling(-12.10),
ceiling(-12.90);
Резултат:
<пред> таван | таван---------+-------- -12 | -12Ceil() срещу Ceiling()
Както споменахме, ceil()
и ceiling()
са еквивалентни.
Ето пример, който показва и двата синтаксиса един до друг.
SELECT
ceil(12.10),
ceiling(12.10);
Резултат:
<пред> таван | таван------+-------- 13 | 13Ceiling() срещу Round()
Ако използвах round()
, 12.10
стойността би била закръглена надолу (тъй като частичните секунди са по-малко от 50).
Ето пример, който илюстрира разликата между ceiling()
и round()
.
SELECT
ceiling(12.10),
round(12.10);
Резултат:
<пред> таван | кръг---------+------- 13 | 12Въпреки това, ако увелича частите от секундите до 50, и двете връщат един и същ резултат.
SELECT
ceiling(12.50),
round(12.50);
Резултат:
<пред> таван | кръг---------+------- 13 | 13Тван() срещу Под()
Postgres също има floor()
функция, която е подобна на ceiling()
с изключение на това, че винаги закръглява числото надолу .
Ето пример, който показва и двата синтаксиса един до друг.
SELECT
ceiling(12.80),
floor(12.80);
Резултат:
<пред> таван | етаж--------+------- 13 | 12И ето един пример, който използва отрицателни стойности.
SELECT
ceiling(-12.30),
floor(-12.30);
Резултат:
<пред> таван | етаж--------+------- -12 | -13