I MySQL, ROUND()
funktionen låter dig avrunda ett tal uppåt eller nedåt till ett givet antal decimaler.
Sättet det fungerar är att du anger talet som ett argument, och du har möjlighet att välja hur många decimaler du vill avrunda talet till. Om du inte anger antalet decimaler kommer resultatet inte att ha några decimaler.
Syntax
Denna funktion kan användas på något av följande sätt:
ROUND(X) ROUND(X,D)
Där X
är numret och D
är antalet decimaler du vill avrunda till. Om du utelämnar D
, kommer talet att avrundas till noll decimaler.
Även D
kan vara negativ. Detta resulterar i D
siffror till vänster om decimaltecknet för värdet X
att bli noll.
Exempel 1 – Använda ett argument
Här är ett grundläggande exempel för att visa vad som händer när vi inte ger ett andra argument.
SELECT ROUND(1.49) Result;
Resultat:
+--------+ | Result | +--------+ | 1 | +--------+
I det här fallet avrundas talet nedåt till närmaste heltal.
Om vi ökar bråkdelen händer det här:
SELECT ROUND(1.50) Result;
Resultat:
+--------+ | Result | +--------+ | 2 | +--------+
I det här fallet avrundas talet uppåt istället.
Exempel 2 – Använda två argument
Så här kan vi använda ett andra argument för att ange decimalerna att avrunda talet till.
SELECT ROUND(1.234, 2) Result;
Resultat:
+--------+ | Result | +--------+ | 1.23 | +--------+
Och här är vad som händer när jag ökar den sista siffran till 5:
SELECT ROUND(1.235, 2) Result;
Resultat:
+--------+ | Result | +--------+ | 1.24 | +--------+
Naturligtvis skulle vi kunna använda många fler decimaler. Till exempel skulle vi kunna trimma ner många decimaler.
SELECT ROUND(1.23456789123456789, 8) Result;
Resultat:
+------------+ | Result | +------------+ | 1.23456789 | +------------+
Eller så kan vi öka antalet decimaler.
SELECT ROUND(1.234, 8) Result;
Resultat:
+------------+ | Result | +------------+ | 1.23400000 | +------------+
Exempel 3 – Använda ett negativt värde för det andra argumentet
Så här kan vi använda ett negativt värde på det andra argumentet för att få delar av den icke-bråkdelar att avrundas till noll.
SELECT ROUND(123.456, -1) Result;
Resultat:
+--------+ | Result | +--------+ | 120 | +--------+
Och så här blir det avrundat om vi ökar 3
till 5
eller mer.
SELECT ROUND(125.456, -1) Result;
Resultat:
+--------+ | Result | +--------+ | 130 | +--------+
Exempel 4 – Avrundning av negativa tal vs positiva tal
Som framgår av de föregående exemplen, när man använder positiva tal, avrundas ett värde med en bråkdel av 0,5 eller högre uppåt till nästa heltal.
Men när du använder negativa tal avrundas sådana värden nedåt .
SELECT ROUND(1.50) Positive, ROUND(-1.50) Negative;
Resultat:
+----------+----------+ | Positive | Negative | +----------+----------+ | 2 | -2 | +----------+----------+
Avrunda ungefärliga värden
Ovanstående avrundningsregel gäller endast för tal med exakta värden. För ungefärliga värden beror resultatet på C-biblioteket. MySQL-dokumentationen säger detta om ungefärliga värden:
På många system betyder detta att
ROUND()
använder regeln "runda till närmaste jämna":Ett värde med en bråkdel exakt halvvägs mellan två heltal avrundas till närmaste jämna heltal.
Och här är exemplet som används på den sidan:
SELECT ROUND(2.5), ROUND(25E-1);
Resultat:
+------------+--------------+ | ROUND(2.5) | ROUND(25E-1) | +------------+--------------+ | 3 | 2 | +------------+--------------+