MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie ROUND() in MariaDB funktioniert

In MariaDB ROUND() ist eine eingebaute numerische Funktion, die ihr Argument auf eine bestimmte Anzahl von Dezimalstellen rundet.

Syntax

Die Funktion kann auf zwei Arten verwendet werden:

ROUND(X)
ROUND(X,D)

Wobei X ist der zu rundende Wert und D ist ein optionales Argument, das die Anzahl der Dezimalstellen angibt, auf die gerundet werden soll.

Beispiel

Hier ist ein Beispiel:

SELECT ROUND(7.5);

Ergebnis:

+------------+
| ROUND(7.5) |
+------------+
|          8 |
+------------+

Das Übergeben eines negativen Werts führt zu folgendem Ergebnis:

SELECT ROUND(-7.5);

Ergebnis:

+-------------+
| ROUND(-7.5) |
+-------------+
|          -8 |
+-------------+

Nachkommastellen angeben

Standardmäßig ist das ROUND() Die Funktion rundet den Wert auf null Dezimalstellen. Wir können die Anzahl der Dezimalstellen angeben, auf die der Wert gerundet werden soll, indem wir ein zweites Argument übergeben.

Beispiel:

SELECT ROUND(7.5164, 2);

Ergebnis:

+------------------+
| ROUND(7.5164, 2) |
+------------------+
|             7.52 |
+------------------+

Negative Dezimalstellen

Das zweite Argument kann bei Bedarf ein negativer Wert sein. Das Übergeben eines negativen Werts bewirkt Ziffern nach links der Dezimalstelle zu Null werden.

Beispiel:

SELECT ROUND(3724.51, -2);

Ergebnis:

+--------------------+
| ROUND(3724.51, -2) |
+--------------------+
|               3700 |
+--------------------+

Im Vergleich zu FLOOR()

Das ROUND() Funktion unterscheidet sich von FLOOR() Funktion. Das ROUND() Die Funktion rundet die Zahl in einigen Fällen auf und in anderen ab. Der FLOOR() Die Funktion hingegen gibt immer den größten ganzzahligen Wert zurück, der nicht größer als ihr Argument ist.

Hier ist ein Vergleich, um diesen Unterschied zu demonstrieren:

SELECT 
    FLOOR(3.6789),
    ROUND(3.6789);

Ergebnis:

+---------------+---------------+
| FLOOR(3.6789) | ROUND(3.6789) |
+---------------+---------------+
|             3 |             4 |
+---------------+---------------+

Auch FLOOR() akzeptiert kein zweites Argument wie ROUND() tut.

ROUND() unterscheidet sich auch von TRUNCATE() Funktion, die die Zahl ohne Rundung einfach auf eine bestimmte Dezimalstelle kürzt.

Nicht numerische Argumente

Folgendes passiert, wenn wir ein nicht numerisches Argument angeben:

SELECT ROUND('Ten');

Ergebnis:

+--------------+
| ROUND('Ten') |
+--------------+
|            0 |
+--------------+
1 row in set, 1 warning (0.028 sec)

Sehen wir uns die Warnung an:

SHOW WARNINGS;

Ergebnis:

+---------+------+-----------------------------------------+
| Level   | Code | Message                                 |
+---------+------+-----------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' |
+---------+------+-----------------------------------------+

Fehlende Argumente

Aufruf von ROUND() ohne Argument führt zu einem Fehler:

SELECT ROUND();

Ergebnis:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ROUND'