In PostgreSQL, il floor()
La funzione viene utilizzata per arrotondare un numero per difetto all'intero più vicino.
È fondamentalmente l'opposto di ceiling()
, che arrotonda un numero per eccesso .
È anche simile a round()
, tranne per il fatto che arrotonda solo per difetto. Il round()
la funzione arrotonda per eccesso o giù come richiesto.
Sintassi
La sintassi è questa:
floor(dp or numeric)
Dove dp
indica double precision
.
Il tipo restituito è lo stesso del tipo di input.
Esempio
Ecco un esempio per dimostrarne l'utilizzo.
SELECT floor(3.99);
Risultato:
3
In questo caso i secondi frazionari sono 99 e il numero viene arrotondato per difetto all'intero più vicino.
Non sorprende che ottengo lo stesso risultato se riduco i secondi frazionari per dire 15.
SELECT floor(3.15);
Risultato:
3
Numeri negativi
Ecco un esempio che utilizza numeri negativi.
SELECT
floor(-3.99),
floor(-3.15);
Risultato:
floor | floor -------+------- -4 | -4
Piano() vs Round()
Ecco un esempio che illustra la differenza tra floor()
e round()
.
SELECT
floor(3.99),
round(3.99);
Risultato:
floor | round -------+------- 3 | 4
Tuttavia, se riduco i secondi frazionari al di sotto di 50, entrambi restituiscono lo stesso risultato.
SELECT
floor(3.49),
round(3.49);
Risultato:
floor | round -------+------- 3 | 3
Pavimento() vs Soffitto()
Postgres ha anche un ceiling()
funzione, che è simile a floor()
tranne per il fatto che arrotonda sempre il numero per eccesso .
Ecco un esempio che mostra entrambe le sintassi affiancate.
SELECT
ceiling(12.80),
floor(12.80);
Risultato:
ceiling | floor ---------+------- 13 | 12
Ed ecco un esempio che utilizza valori negativi.
SELECT
ceiling(-12.30),
floor(-12.30);
Risultato:
ceiling | floor ---------+------- -12 | -13