Mysql
 sql >> Database >  >> RDS >> Mysql

Funzione MySQL ROUND() – Arrotonda un numero a un determinato numero di cifre decimali

In MySQL, il ROUND() La funzione consente di arrotondare un numero per eccesso o per difetto a un determinato numero di cifre decimali.

Il modo in cui funziona è fornire il numero come argomento e hai la possibilità di scegliere a quante cifre decimali arrotondare il numero. Se non specifichi il numero di cifre decimali, il risultato non avrà cifre decimali.

Sintassi

Questa funzione può essere utilizzata in uno dei seguenti modi:

ROUND(X)
ROUND(X,D)

Dove X è il numero e D è il numero di cifre decimali a cui vuoi arrotondare. Se ometti D , il numero verrà arrotondato a zero decimali.

Inoltre, D può essere negativo. Ciò si traduce in D cifre a sinistra della virgola decimale del valore X diventare zero.

Esempio 1:utilizzo di un argomento

Ecco un esempio di base per dimostrare cosa succede quando non forniamo un secondo argomento.

SELECT ROUND(1.49) Result;

Risultato:

+--------+
| Result |
+--------+
|      1 |
+--------+

In questo caso il numero viene arrotondato per difetto all'intero più vicino.

Se aumentiamo la parte frazionaria, ecco cosa succede:

SELECT ROUND(1.50) Result;

Risultato:

+--------+
| Result |
+--------+
|      2 |
+--------+

In questo caso il numero viene invece arrotondato per eccesso.

Esempio 2:utilizzo di due argomenti

Ecco come possiamo utilizzare un secondo argomento per specificare le cifre decimali a cui arrotondare il numero.

SELECT ROUND(1.234, 2) Result;

Risultato:

+--------+
| Result |
+--------+
|   1.23 |
+--------+

Ed ecco cosa succede quando aumento l'ultima cifra a 5:

SELECT ROUND(1.235, 2) Result;

Risultato:

+--------+
| Result |
+--------+
|   1.24 |
+--------+

Naturalmente, potremmo usare molte più cifre decimali. Ad esempio, potremmo ridurre molte posizioni decimali.

SELECT ROUND(1.23456789123456789, 8) Result;

Risultato:

+------------+
| Result     |
+------------+
| 1.23456789 |
+------------+

Oppure potremmo aumentare il numero di cifre decimali.

SELECT ROUND(1.234, 8) Result;

Risultato:

+------------+
| Result     |
+------------+
| 1.23400000 |
+------------+

Esempio 3:utilizzo di un valore negativo per il secondo argomento

Ecco come possiamo utilizzare un valore negativo sul secondo argomento per far sì che parti della parte non frazionaria vengano arrotondate a zero.

SELECT ROUND(123.456, -1) Result;

Risultato:

+--------+
| Result |
+--------+
|    120 |
+--------+

Ed ecco come viene arrotondato se aumentiamo il 3 a 5 o più.

SELECT ROUND(125.456, -1) Result;

Risultato:

+--------+
| Result |
+--------+
|    130 |
+--------+

Esempio 4:arrotondamento di numeri negativi e numeri positivi

Come visto negli esempi precedenti, quando si utilizzano numeri positivi, un valore con una parte frazionaria pari o superiore a 0,5 viene arrotondato al numero intero successivo.

Tuttavia, quando si utilizzano numeri negativi, tali valori vengono arrotondati per difetto .

SELECT 
  ROUND(1.50) Positive,
  ROUND(-1.50) Negative;

Risultato:

+----------+----------+
| Positive | Negative |
+----------+----------+
|        2 |       -2 |
+----------+----------+

Arrotondamento dei numeri di valore approssimativo

La regola di arrotondamento sopra si applica solo ai numeri con valore esatto. Per i numeri di valore approssimativo, il risultato dipende dalla libreria C. La documentazione di MySQL lo afferma sui numeri di valore approssimativo:

Su molti sistemi, questo significa che ROUND() utilizza la regola "arrotonda al pari più vicino":un valore con una parte frazionaria esattamente a metà strada tra due numeri interi viene arrotondato al numero intero pari più vicino.

Ed ecco l'esempio utilizzato in quella pagina:

SELECT 
  ROUND(2.5), 
  ROUND(25E-1);

Risultato:

+------------+--------------+
| ROUND(2.5) | ROUND(25E-1) |
+------------+--------------+
|          3 |            2 |
+------------+--------------+