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 | +------------+--------------+