I PostgreSQL, ceiling()
funktion används för att avrunda ett tal uppåt till närmaste heltal.
Det liknar round()
, förutom att det bara avrundas uppåt. round()
funktionen kommer att runda upp eller ner efter behov.
Det liknar också floor()
, förutom att floor()
rundar ned istället för upp.
Syntax
ceiling()
funktionen kan användas på något av följande sätt:
ceil(dp or numeric)
ceiling(dp or numeric)
Där dp
indikerar double precision
.
Returtypen är densamma som inmatningstypen.
Båda syntaxerna fungerar exakt likadant. Den första syntaxen är helt enkelt ett mer kortfattat sätt att göra det på.
Exempel
Här är ett exempel för att demonstrera dess användning.
SELECT ceiling(12.10);
Resultat:
13
I det här fallet är bråksekunderna 10 och talet avrundas uppåt till närmaste heltal.
Det säger sig nog självklart, men om jag ökar bråksekunderna till 50 avrundar det ändå uppåt.
SELECT ceiling(12.70);
Resultat:
13
Negativa tal
Här är ett exempel som använder negativa tal.
SELECT
ceiling(-12.10),
ceiling(-12.90);
Resultat:
ceiling | ceiling ---------+--------- -12 | -12
Ceil() vs Ceiling()
Som nämnts, ceil()
och ceiling()
är likvärdiga.
Här är ett exempel som visar båda syntaxerna sida vid sida.
SELECT
ceil(12.10),
ceiling(12.10);
Resultat:
ceil | ceiling ------+--------- 13 | 13
Ceiling() vs Round()
Om jag hade använt round()
, 12.10
värde skulle ha avrundats nedåt (eftersom bråksekunderna är mindre än 50).
Här är ett exempel som illustrerar skillnaden mellan ceiling()
och round()
.
SELECT
ceiling(12.10),
round(12.10);
Resultat:
ceiling | round ---------+------- 13 | 12
Men om jag ökar bråksekunderna till 50, ger de båda samma resultat.
SELECT
ceiling(12.50),
round(12.50);
Resultat:
ceiling | round ---------+------- 13 | 13
Ceiling() vs Floor()
Postgres har också en floor()
funktion, som liknar ceiling()
förutom att det alltid avrundar siffran nedåt .
Här är ett exempel som visar båda syntaxerna sida vid sida.
SELECT
ceiling(12.80),
floor(12.80);
Resultat:
ceiling | floor ---------+------- 13 | 12
Och här är ett exempel som använder negativa värden.
SELECT
ceiling(-12.30),
floor(-12.30);
Resultat:
ceiling | floor ---------+------- -12 | -13