Oracle
 sql >> Database >  >> RDS >> Oracle

3 modi per formattare un numero in 2 posizioni decimali in Oracle

Quando utilizzi Oracle Database, puoi utilizzare funzioni come TO_CHAR(number) per restituire i numeri sotto forma di stringa, formatta con due cifre decimali (o con il numero di cifre decimali richieste).

Oppure puoi usare funzioni come ROUND(number) e TRUNC(number) per arrotondare o troncare il numero al numero di cifre decimali richiesto.

Il TO_CHAR() Funzione

Ecco un esempio che utilizza TO_CHAR(number) funzione:

SELECT TO_CHAR(1.2345, 'fm99D00')
FROM DUAL;

Risultato:

1.23

In questo caso il numero originale ha più di due cifre decimali, quindi il risultato lo tronca semplicemente al numero specificato di zeri che seguono il carattere decimale/radice (D ) nel modello di formato.

Il motivo per cui ho usato gli zeri dopo il carattere decimale è fornire zeri finali, se necessario.

Esempio:

SELECT TO_CHAR(7, 'fm99D00')
FROM DUAL;

Risultato:

7.00

Se non voglio gli zeri finali, posso cambiare 0 caratteri in 9 s.

Ecco un confronto tra i due:

SELECT 
    TO_CHAR(7, 'fm99D00') AS "r1",
    TO_CHAR(7, 'fm99D99') AS "r2"
FROM DUAL;

Risultato:

     r1    r2 
_______ _____ 
7.00    7.   

Usando 9 s in questo caso, ha prodotto un carattere radix, ma nessuna cifra decimale.

Devo sottolineare che fm è un modificatore di formato che rimuove qualsiasi riempimento che può essere applicato al risultato. Puoi ometterlo se non ti dispiace che il risultato sia imbottito. Anche se, se lo fai, potresti ritrovarti con zeri finali, anche quando usi il 9 elemento di formato.

Ecco cosa succede quando rimuovo fm dall'esempio precedente:

SELECT 
    TO_CHAR(7, '99D00') AS "r1",
    TO_CHAR(7, '99D99') AS "r2"
FROM DUAL;

Risultato:

       r1        r2 
_________ _________ 
  7.00      7.00   

Naturalmente, non sei limitato a due cifre decimali:puoi specificare più cifre decimali nel tuo modello di formato, se necessario.

Esempio:

SELECT TO_CHAR(7, 'fm99D0000')
FROM DUAL;

Risultato:

7.0000

Il ROUND() Funzione

Ecco un esempio che utilizza ROUND(number) funzione:

SELECT ROUND(1.2573, 2)
FROM DUAL;

Risultato:

1.26

Tegli ROUND() La funzione arrotonda un numero a una determinata cifra decimale. Qui, abbiamo specificato due cifre decimali, ma avremmo potuto specificare qualsiasi numero.

In questo caso, il numero è stato arrotondato per eccesso.

Il TRUNC() Funzione

Ecco un esempio che utilizza TRUNC(number) funzione:

SELECT TRUNC(1.2573, 2)
FROM DUAL;

Risultato:

1.25

Il TRUNC() La funzione tronca un numero in una determinata posizione decimale. Non si verifica alcun arrotondamento.