Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL ROUND()-Funktion – Runden Sie eine Zahl auf eine bestimmte Anzahl von Dezimalstellen

In MySQL das ROUND() Mit dieser Funktion können Sie eine Zahl auf eine bestimmte Anzahl von Dezimalstellen auf- oder abrunden.

Sie geben die Zahl als Argument an und können auswählen, auf wie viele Dezimalstellen die Zahl gerundet werden soll. Wenn Sie die Anzahl der Dezimalstellen nicht angeben, enthält das Ergebnis keine Dezimalstellen.

Syntax

Diese Funktion kann auf eine der folgenden Arten verwendet werden:

ROUND(X)
ROUND(X,D)

Wobei X ist die Zahl und D ist die Anzahl der Dezimalstellen, auf die gerundet werden soll. Wenn Sie D weglassen , wird die Zahl auf null Dezimalstellen gerundet.

Auch D kann negativ sein. Daraus ergibt sich D Stellen links vom Dezimalpunkt des Wertes X Null werden.

Beispiel 1 – Verwendung eines Arguments

Hier ist ein einfaches Beispiel, um zu demonstrieren, was passiert, wenn wir kein zweites Argument angeben.

SELECT ROUND(1.49) Result;

Ergebnis:

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

In diesem Fall wird auf die nächste ganze Zahl abgerundet.

Wenn wir den Bruchteil erhöhen, passiert Folgendes:

SELECT ROUND(1.50) Result;

Ergebnis:

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

In diesem Fall wird stattdessen aufgerundet.

Beispiel 2 – Verwendung von zwei Argumenten

So können wir ein zweites Argument verwenden, um die Dezimalstellen anzugeben, auf die die Zahl gerundet werden soll.

SELECT ROUND(1.234, 2) Result;

Ergebnis:

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

Und das passiert, wenn ich die letzte Ziffer auf 5 erhöhe:

SELECT ROUND(1.235, 2) Result;

Ergebnis:

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

Natürlich könnten wir viel mehr Dezimalstellen verwenden. Zum Beispiel könnten wir viele Dezimalstellen nach unten kürzen.

SELECT ROUND(1.23456789123456789, 8) Result;

Ergebnis:

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

Oder wir könnten die Anzahl der Dezimalstellen erhöhen.

SELECT ROUND(1.234, 8) Result;

Ergebnis:

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

Beispiel 3 – Verwenden eines negativen Werts für das zweite Argument

So können wir einen negativen Wert für das zweite Argument verwenden, um zu bewirken, dass Teile des nicht gebrochenen Teils auf Null gerundet werden.

SELECT ROUND(123.456, -1) Result;

Ergebnis:

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

Und so wird es gerundet, wenn wir die 3 erhöhen bis 5 oder mehr.

SELECT ROUND(125.456, -1) Result;

Ergebnis:

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

Beispiel 4 – Runden negativer Zahlen vs. positiver Zahlen

Wie in den vorherigen Beispielen zu sehen ist, wird bei der Verwendung positiver Zahlen ein Wert mit einem Bruchteil von 0,5 oder mehr auf die nächste Ganzzahl aufgerundet.

Bei Verwendung negativer Zahlen werden solche Werte jedoch abgerundet .

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

Ergebnis:

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

Rundung von ungefähren Zahlen

Die obige Rundungsregel gilt nur für exakte Zahlen. Bei Näherungswertzahlen hängt das Ergebnis von der C-Bibliothek ab. Die MySQL-Dokumentation sagt dies über Annäherungswertzahlen:

Auf vielen Systemen bedeutet dies, dass ROUND() verwendet die Regel „auf die nächste gerade Zahl runden“:Ein Wert mit einem Bruchteil genau in der Mitte zwischen zwei ganzen Zahlen wird auf die nächste gerade ganze Zahl gerundet.

Und hier ist das Beispiel, das auf dieser Seite verwendet wird:

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

Ergebnis:

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