PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come funziona Floor() in PostgreSQL

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