In PostgreSQL, il trunc()
la funzione tronca un numero.
Più specificamente, tronca il numero verso lo zero o verso un numero specifico di cifre decimali.
Sintassi
Il trunc()
la funzione può essere utilizzata in uno dei seguenti modi:
trunc(dp or numeric)
trunc(v numeric, s int)
La prima sintassi tronca il numero verso zero.
La seconda sintassi lo tronca a un numero specificato di cifre decimali. In questo caso, v
è il numero e s
è il numero di cifre decimali.
Esempio di prima sintassi
Ecco un esempio che utilizza la prima sintassi.
SELECT trunc(342.49);
Risultato:
342
Esempio di seconda sintassi
Ecco un esempio che utilizza la seconda sintassi.
SELECT trunc(342.49, 1);
Risultato:
342.4
Aggiunta di secondi frazionari
Ecco un esempio di come specificare un numero di cifre decimali quando il numero non ne include nessuna.
SELECT trunc(342, 3);
Risultato:
342.000
Numeri negativi
Ecco un esempio che utilizza un numero negativo.
SELECT round(-4.5);
Risultato:
-5
Punti decimali negativi
Ecco cosa succede quando il secondo argomento è un valore negativo.
SELECT trunc(342, -2);
Risultato:
300
Trunc() vs Round()
In alcuni casi, il trunc()
potrebbe sembrare che funzioni in modo simile a round()
. Ma sono funzioni abbastanza diverse.
Il round()
la funzione arrotonda il numero. Il numero viene arrotondato all'intero più vicino o al numero specificato di cifre decimali (a seconda che gli venga assegnato un argomento o due).
Il trunc()
la funzione d'altra parte tronca semplicemente il numero verso zero o alla cifra decimale specificata. Non viene eseguito alcun arrotondamento.
Ecco un esempio per dimostrare la differenza.
SELECT
round(342.49, 1),
trunc(342.49, 1);
Risultato:
round | trunc -------+------- 342.5 | 342.4