I MySQL er ROUND()
funktionen giver dig mulighed for at runde et tal op eller ned til et givet antal decimaler.
Sådan fungerer det, at du angiver tallet som et argument, og du har mulighed for at vælge, hvor mange decimaler, tallet skal afrundes til. Hvis du ikke angiver antallet af decimaler, vil resultatet ikke have nogen decimaler.
Syntaks
Denne funktion kan bruges på en af følgende måder:
ROUND(X) ROUND(X,D)
Hvor X
er tallet og D
er antallet af decimaler, du vil have det afrundet til. Hvis du udelader D
, vil tallet blive afrundet til nul decimaler.
Også D
kan være negativ. Dette resulterer i D
cifre til venstre for decimalpunktet for værdien X
at blive nul.
Eksempel 1 – Brug af ét argument
Her er et grundlæggende eksempel til at demonstrere, hvad der sker, når vi ikke giver et andet argument.
SELECT ROUND(1.49) Result;
Resultat:
+--------+ | Result | +--------+ | 1 | +--------+
I dette tilfælde rundes tallet ned til nærmeste heltal.
Hvis vi øger brøkdelen, sker der her:
SELECT ROUND(1.50) Result;
Resultat:
+--------+ | Result | +--------+ | 2 | +--------+
I dette tilfælde rundes tallet op i stedet.
Eksempel 2 – Brug af to argumenter
Sådan kan vi bruge et andet argument til at angive de decimaler, som tallet skal afrundes til.
SELECT ROUND(1.234, 2) Result;
Resultat:
+--------+ | Result | +--------+ | 1.23 | +--------+
Og her er, hvad der sker, når jeg øger det sidste ciffer til 5:
SELECT ROUND(1.235, 2) Result;
Resultat:
+--------+ | Result | +--------+ | 1.24 | +--------+
Selvfølgelig kunne vi bruge mange flere decimaler. For eksempel kunne vi trimme mange decimaler ned.
SELECT ROUND(1.23456789123456789, 8) Result;
Resultat:
+------------+ | Result | +------------+ | 1.23456789 | +------------+
Eller vi kunne øge antallet af decimaler.
SELECT ROUND(1.234, 8) Result;
Resultat:
+------------+ | Result | +------------+ | 1.23400000 | +------------+
Eksempel 3 – Brug af en negativ værdi til det andet argument
Sådan kan vi bruge en negativ værdi på det andet argument til at få dele af den ikke-brøkdel til at blive afrundet til nul.
SELECT ROUND(123.456, -1) Result;
Resultat:
+--------+ | Result | +--------+ | 120 | +--------+
Og her er, hvordan det bliver afrundet, hvis vi øger 3
til 5
eller mere.
SELECT ROUND(125.456, -1) Result;
Resultat:
+--------+ | Result | +--------+ | 130 | +--------+
Eksempel 4 – Afrunding af negative tal vs. positive tal
Som det fremgår af de foregående eksempler, rundes en værdi med en brøkdel på 0,5 eller større op til det næste heltal, når der bruges positive tal.
Men når du bruger negative tal, rundes sådanne værdier ned .
SELECT ROUND(1.50) Positive, ROUND(-1.50) Negative;
Resultat:
+----------+----------+ | Positive | Negative | +----------+----------+ | 2 | -2 | +----------+----------+
Afrunding af omtrentlige værdier
Ovenstående afrundingsregel gælder kun for tal med nøjagtige værdier. For tal med omtrentlige værdier afhænger resultatet af C-biblioteket. MySQL-dokumentationen siger dette om tal med omtrentlige værdier:
På mange systemer betyder det, at ROUND()
bruger reglen "afrund til nærmeste lige":En værdi med en brøkdel nøjagtigt halvvejs mellem to heltal afrundes til nærmeste lige heltal.
Og her er eksemplet brugt på den side:
SELECT ROUND(2.5), ROUND(25E-1);
Resultat:
+------------+--------------+ | ROUND(2.5) | ROUND(25E-1) | +------------+--------------+ | 3 | 2 | +------------+--------------+