I PostgreSQL er ceiling()
funktion bruges til at runde et tal op til det nærmeste heltal.
Det ligner round()
, bortset fra at det kun runder op. round()
funktionen runder eller op ned efter behov.
Det ligner også floor()
, bortset fra at floor()
runder ned i stedet for op.
Syntaks
ceiling()
funktionen kan bruges på en af følgende måder:
ceil(dp or numeric)
ceiling(dp or numeric)
Hvor dp
angiver double precision
.
Returtypen er den samme som inputtypen.
Begge syntakser fungerer nøjagtigt det samme. Den første syntaks er simpelthen en mere kortfattet måde at gøre det på.
Eksempel
Her er et eksempel for at demonstrere dets brug.
SELECT ceiling(12.10);
Resultat:
13
I dette tilfælde er brøksekunderne 10, og tallet rundes op til nærmeste heltal.
Det siger nok sig selv, men hvis jeg øger brøksekunderne til 50, runder det stadig op.
SELECT ceiling(12.70);
Resultat:
13
Negative tal
Her er et eksempel, der bruger negative tal.
SELECT
ceiling(-12.10),
ceiling(-12.90);
Resultat:
ceiling | ceiling ---------+--------- -12 | -12
Ceil() vs Ceiling()
Som nævnt, ceil()
og ceiling()
er ækvivalente.
Her er et eksempel, der viser begge syntakser side om side.
SELECT
ceil(12.10),
ceiling(12.10);
Resultat:
ceil | ceiling ------+--------- 13 | 13
Ceiling() vs Round()
Hvis jeg havde brugt round()
, 12.10
værdien ville være blevet rundet ned (fordi brøksekunderne er mindre end 50).
Her er et eksempel, der illustrerer forskellen mellem ceiling()
og round()
.
SELECT
ceiling(12.10),
round(12.10);
Resultat:
ceiling | round ---------+------- 13 | 12
Men hvis jeg øger brøksekunderne til 50, returnerer de begge det samme resultat.
SELECT
ceiling(12.50),
round(12.50);
Resultat:
ceiling | round ---------+------- 13 | 13
Ceiling() vs Floor()
Postgres har også en floor()
funktion, som ligner ceiling()
bortset fra at det altid runder tallet ned .
Her er et eksempel, der viser begge syntakser side om side.
SELECT
ceiling(12.80),
floor(12.80);
Resultat:
ceiling | floor ---------+------- 13 | 12
Og her er et eksempel, der bruger negative værdier.
SELECT
ceiling(-12.30),
floor(-12.30);
Resultat:
ceiling | floor ---------+------- -12 | -13