In MariaDB, ROUND()
is een ingebouwde numerieke functie die zijn argument afrondt op een bepaald aantal decimalen.
Syntaxis
De functie kan op de volgende twee manieren worden gebruikt:
ROUND(X)
ROUND(X,D)
Waar X
is de waarde om af te ronden, en D
is een optioneel argument dat het aantal decimalen aangeeft waarop het moet worden afgerond.
Voorbeeld
Hier is een voorbeeld:
SELECT ROUND(7.5);
Resultaat:
+------------+ | ROUND(7.5) | +------------+ | 8 | +------------+
Het doorgeven van een negatieve waarde levert het volgende resultaat op:
SELECT ROUND(-7.5);
Resultaat:
+-------------+ | ROUND(-7.5) | +-------------+ | -8 | +-------------+
Geef decimalen op
Standaard is de ROUND()
functie rondt de waarde af op nul decimalen. We kunnen het aantal decimalen opgeven waarop de waarde moet worden afgerond door een tweede argument door te geven.
Voorbeeld:
SELECT ROUND(7.5164, 2);
Resultaat:
+------------------+ | ROUND(7.5164, 2) | +------------------+ | 7.52 | +------------------+
Negatieve decimalen
Het tweede argument kan indien nodig een negatieve waarde zijn. Als u een negatieve waarde doorgeeft, worden de cijfers links van de decimale plaats om nul te worden.
Voorbeeld:
SELECT ROUND(3724.51, -2);
Resultaat:
+--------------------+ | ROUND(3724.51, -2) | +--------------------+ | 3700 | +--------------------+
Vergeleken met FLOOR()
De ROUND()
functie is anders dan de FLOOR()
functie. De ROUND()
functie rondt het getal in sommige gevallen naar boven af en in andere naar beneden. De FLOOR()
functie, aan de andere kant, retourneert altijd de grootste gehele waarde die niet groter is dan zijn argument.
Hier is een vergelijking om dit verschil aan te tonen:
SELECT
FLOOR(3.6789),
ROUND(3.6789);
Resultaat:
+---------------+---------------+ | FLOOR(3.6789) | ROUND(3.6789) | +---------------+---------------+ | 3 | 4 | +---------------+---------------+
Ook FLOOR()
accepteert geen tweede argument zoals ROUND()
doet.
ROUND()
is ook anders dan de TRUNCATE()
functie, die het getal eenvoudig afkapt tot een bepaald decimaalteken, zonder enige afronding.
Niet-numerieke argumenten
Dit is wat er gebeurt als we een niet-numeriek argument opgeven:
SELECT ROUND('Ten');
Resultaat:
+--------------+ | ROUND('Ten') | +--------------+ | 0 | +--------------+ 1 row in set, 1 warning (0.028 sec)
Laten we de waarschuwing eens bekijken:
SHOW WARNINGS;
Resultaat:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' | +---------+------+-----------------------------------------+
Ontbrekende argumenten
ROUND()
. aanroepen zonder een argument resulteert in een fout:
SELECT ROUND();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ROUND'