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

Come funziona Ceiling() in PostgreSQL

In PostgreSQL, il ceiling() La funzione viene utilizzata per arrotondare un numero per eccesso all'intero più vicino.

È simile a round() , tranne per il fatto che arrotonda solo per eccesso. Il round() la funzione arrotonda per eccesso o giù come richiesto.

È anche simile a floor() , tranne che floor() arrotonda per difetto invece di su.

Sintassi

Il ceiling() la funzione può essere utilizzata in uno dei seguenti modi:

ceil(dp or numeric)
ceiling(dp or numeric)

Dove dp indica double precision .

Il tipo restituito è lo stesso del tipo di input.

Entrambe le sintassi funzionano esattamente allo stesso modo. La prima sintassi è semplicemente un modo più conciso per farlo.

Esempio

Ecco un esempio per dimostrarne l'utilizzo.

SELECT ceiling(12.10);

Risultato:

13

In questo caso i secondi frazionari sono 10 e il numero viene arrotondato per eccesso all'intero più vicino.

Probabilmente è ovvio, ma se aumento i secondi frazionari a 50, lo arrotonda comunque per eccesso.

SELECT ceiling(12.70);

Risultato:

13

Numeri negativi

Ecco un esempio che utilizza numeri negativi.

SELECT 
  ceiling(-12.10),
  ceiling(-12.90);

Risultato:

 ceiling | ceiling
---------+---------
     -12 | -12

Ceil() vs Ceiling()

Come accennato, ceil() e ceiling() sono equivalenti.

Ecco un esempio che mostra entrambe le sintassi affiancate.

SELECT 
  ceil(12.10),
  ceiling(12.10);

Risultato:

 ceil | ceiling
------+---------
   13 | 13

Soffitto() vs Round()

Se avessi usato round() , il 12.10 il valore sarebbe stato arrotondato per difetto (perché i secondi frazionari sono inferiori a 50).

Ecco un esempio che illustra la differenza tra ceiling() e round() .

SELECT 
  ceiling(12.10),
  round(12.10);

Risultato:

 ceiling | round
---------+-------
      13 | 12

Tuttavia, se aumento i secondi frazionari a 50, entrambi restituiscono lo stesso risultato.

SELECT 
  ceiling(12.50),
  round(12.50);

Risultato:

 ceiling | round
---------+-------
      13 | 13

Soffitto() vs Pavimento()

Postgres ha anche un floor() funzione, che è simile a ceiling() tranne per il fatto che arrotonda sempre il numero per difetto .

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