In PostgreSQL is de floor()
functie wordt gebruikt om een getal naar beneden af te ronden op het dichtstbijzijnde gehele getal.
Het is eigenlijk het tegenovergestelde van ceiling()
, waarmee een getal naar boven wordt afgerond .
Het lijkt ook op round()
, behalve dat het alleen naar beneden wordt afgerond. De round()
functie zal of . naar boven afronden omlaag indien nodig.
Syntaxis
De syntaxis gaat als volgt:
floor(dp or numeric)
Waar dp
geeft double precision
aan .
Het retourtype is hetzelfde als het invoertype.
Voorbeeld
Hier is een voorbeeld om het gebruik te demonstreren.
SELECT floor(3.99);
Resultaat:
3
In dit geval zijn de fractionele seconden 99 en wordt het getal naar beneden afgerond op het dichtstbijzijnde gehele getal.
Het is niet verrassend dat ik hetzelfde resultaat krijg als ik de fracties van seconden verklein om te zeggen 15.
SELECT floor(3.15);
Resultaat:
3
Negatieve getallen
Hier is een voorbeeld dat negatieve getallen gebruikt.
SELECT
floor(-3.99),
floor(-3.15);
Resultaat:
floor | floor -------+------- -4 | -4
Verdieping() vs Ronde()
Hier is een voorbeeld dat het verschil illustreert tussen floor()
en round()
.
SELECT
floor(3.99),
round(3.99);
Resultaat:
floor | round -------+------- 3 | 4
Als ik de fractionele seconden echter verminder tot onder de 50, geven ze allebei hetzelfde resultaat.
SELECT
floor(3.49),
round(3.49);
Resultaat:
floor | round -------+------- 3 | 3
Vloer() versus plafond()
Postgres heeft ook een ceiling()
functie, die vergelijkbaar is met floor()
behalve dat het getal altijd naar boven wordt afgerond .
Hier is een voorbeeld waarin beide syntaxis naast elkaar worden weergegeven.
SELECT
ceiling(12.80),
floor(12.80);
Resultaat:
ceiling | floor ---------+------- 13 | 12
En hier is een voorbeeld dat negatieve waarden gebruikt.
SELECT
ceiling(-12.30),
floor(-12.30);
Resultaat:
ceiling | floor ---------+------- -12 | -13