I PostgreSQL er floor()
funktion bruges til at runde et tal ned til nærmeste heltal.
Det er dybest set det modsatte af ceiling()
, som runder et tal op .
Det ligner også round()
, bortset fra at det kun runder ned. round()
funktionen runder eller op ned efter behov.
Syntaks
Syntaksen ser sådan ud:
floor(dp or numeric)
Hvor dp
angiver double precision
.
Returtypen er den samme som inputtypen.
Eksempel
Her er et eksempel for at demonstrere dets brug.
SELECT floor(3.99);
Resultat:
3
I dette tilfælde er brøksekunderne 99, og tallet rundes ned til nærmeste heltal.
Ikke overraskende får jeg det samme resultat, hvis jeg reducerer brøksekunderne til at sige 15.
SELECT floor(3.15);
Resultat:
3
Negative tal
Her er et eksempel, der bruger negative tal.
SELECT
floor(-3.99),
floor(-3.15);
Resultat:
floor | floor -------+------- -4 | -4
Etage() vs Round()
Her er et eksempel, der illustrerer forskellen mellem floor()
og round()
.
SELECT
floor(3.99),
round(3.99);
Resultat:
floor | round -------+------- 3 | 4
Men hvis jeg reducerer brøksekunderne til under 50, returnerer de begge det samme resultat.
SELECT
floor(3.49),
round(3.49);
Resultat:
floor | round -------+------- 3 | 3
Floor() vs Ceiling()
Postgres har også et ceiling()
funktion, som ligner floor()
bortset fra at det altid runder tallet op .
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