I PostgreSQL, floor()
funktion används för att avrunda ett tal nedåt till närmaste heltal.
Det är i princip motsatsen till ceiling()
, vilket avrundar ett nummer uppåt .
Det liknar också round()
, förutom att det bara avrundas nedåt. round()
funktionen kommer att runda upp eller ner efter behov.
Syntax
Syntaxen ser ut så här:
floor(dp or numeric)
Där dp
indikerar double precision
.
Returtypen är densamma som inmatningstypen.
Exempel
Här är ett exempel för att demonstrera dess användning.
SELECT floor(3.99);
Resultat:
3
I det här fallet är bråksekunderna 99 och talet avrundas nedåt till närmaste heltal.
Inte överraskande får jag samma resultat om jag minskar antalet bråkdelar för att säga 15.
SELECT floor(3.15);
Resultat:
3
Negativa tal
Här är ett exempel som använder negativa tal.
SELECT
floor(-3.99),
floor(-3.15);
Resultat:
floor | floor -------+------- -4 | -4
Floor() vs Round()
Här är ett exempel som illustrerar skillnaden mellan floor()
och round()
.
SELECT
floor(3.99),
round(3.99);
Resultat:
floor | round -------+------- 3 | 4
Men om jag minskar bråksekunderna till under 50, ger de båda samma resultat.
SELECT
floor(3.49),
round(3.49);
Resultat:
floor | round -------+------- 3 | 3
Golv() vs Ceiling()
Postgres har också en ceiling()
funktion, som liknar floor()
förutom att det alltid avrundar siffran upp .
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