В 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