I MariaDB, ROUND() är en inbyggd numerisk funktion som avrundar sitt argument till ett givet antal decimaler.
Syntax
Funktionen kan användas på följande två sätt:
ROUND(X)
ROUND(X,D)
Där X är värdet som ska avrundas och D är ett valfritt argument som anger antalet decimaler som ska avrundas till.
Exempel
Här är ett exempel:
SELECT ROUND(7.5); Resultat:
+------------+ | ROUND(7.5) | +------------+ | 8 | +------------+
Att skicka ett negativt värde ger följande resultat:
SELECT ROUND(-7.5); Resultat:
+-------------+ | ROUND(-7.5) | +-------------+ | -8 | +-------------+
Ange decimaler
Som standard är ROUND() funktion avrundar värdet till noll decimaler. Vi kan specificera antalet decimaler att avrunda värdet till genom att skicka ett andra argument.
Exempel:
SELECT ROUND(7.5164, 2); Resultat:
+------------------+ | ROUND(7.5164, 2) | +------------------+ | 7.52 | +------------------+
Negativa decimaler
Det andra argumentet kan vara ett negativt värde om det behövs. Att skicka ett negativt värde gör att siffror till vänster av decimalen för att bli noll.
Exempel:
SELECT ROUND(3724.51, -2); Resultat:
+--------------------+ | ROUND(3724.51, -2) | +--------------------+ | 3700 | +--------------------+
Jämfört med FLOOR()
ROUND() funktionen skiljer sig från FLOOR() fungera. ROUND() funktion avrundar talet uppåt i vissa fall och nedåt i andra. FLOOR() funktion, å andra sidan, returnerar alltid det största heltalsvärdet som inte är större än dess argument.
Här är en jämförelse för att visa denna skillnad:
SELECT
FLOOR(3.6789),
ROUND(3.6789); Resultat:
+---------------+---------------+ | FLOOR(3.6789) | ROUND(3.6789) | +---------------+---------------+ | 3 | 4 | +---------------+---------------+
Även FLOOR() accepterar inte ett andra argument som ROUND() gör.
ROUND() skiljer sig också från TRUNCATE() funktion, som helt enkelt trunkerar talet till en given decimal, utan någon avrundning.
Icke-numeriska argument
Det här är vad som händer när vi tillhandahåller ett icke-numeriskt argument:
SELECT ROUND('Ten'); Resultat:
+--------------+
| ROUND('Ten') |
+--------------+
| 0 |
+--------------+
1 row in set, 1 warning (0.028 sec) Låt oss kolla varningen:
SHOW WARNINGS; Resultat:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' | +---------+------+-----------------------------------------+
Argument saknas
Anropar ROUND() utan argument resulterar i ett fel:
SELECT ROUND(); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ROUND'