В MySQL, ROUND()
функцията ви позволява да закръглите число нагоре или надолу до определен брой десетични знаци.
Начинът, по който работи, е, че предоставяте числото като аргумент и имате възможност да изберете до колко десетични знака да закръглите числото. Ако не посочите броя на десетичните знаци, резултатът няма да има десетични знаци.
Синтаксис
Тази функция може да се използва по един от следните начини:
ROUND(X) ROUND(X,D)
Където X
е числото и D
е броят на десетичните знаци, до който искате да бъде закръглен. Ако пропуснете D
, числото ще бъде закръглено до нула след десетичната запетая.
Също така, D
може да бъде отрицателен. Това води до D
цифри вляво от десетичната запетая на стойността X
да стане нула.
Пример 1 – Използване на един аргумент
Ето основен пример, който да демонстрира какво се случва, когато не предоставим втори аргумент.
SELECT ROUND(1.49) Result;
Резултат:
+--------+ | Result | +--------+ | 1 | +--------+
В този случай числото се закръглява надолу до най-близкото цяло число.
Ако увеличим дробната част, ето какво се случва:
SELECT ROUND(1.50) Result;
Резултат:
+--------+ | Result | +--------+ | 2 | +--------+
В този случай вместо това числото се закръглява нагоре.
Пример 2 – Използване на два аргумента
Ето как можем да използваме втори аргумент, за да посочим десетичните знаци, до които да закръгляме числото.
SELECT ROUND(1.234, 2) Result;
Резултат:
+--------+ | Result | +--------+ | 1.23 | +--------+
И ето какво се случва, когато увелича последната цифра на 5:
SELECT ROUND(1.235, 2) Result;
Резултат:
+--------+ | Result | +--------+ | 1.24 | +--------+
Разбира се, бихме могли да използваме много повече десетични знаци. Например бихме могли да отрежем много десетични знака.
SELECT ROUND(1.23456789123456789, 8) Result;
Резултат:
+------------+ | Result | +------------+ | 1.23456789 | +------------+
Или можем да увеличим броя на десетичните знаци.
SELECT ROUND(1.234, 8) Result;
Резултат:
+------------+ | Result | +------------+ | 1.23400000 | +------------+
Пример 3 – Използване на отрицателна стойност за втория аргумент
Ето как можем да използваме отрицателна стойност на втория аргумент, за да накараме части от недробната част да бъдат закръглени до нула.
SELECT ROUND(123.456, -1) Result;
Резултат:
+--------+ | Result | +--------+ | 120 | +--------+
И ето как се закръглява, ако увеличим 3
до 5
или повече.
SELECT ROUND(125.456, -1) Result;
Резултат:
+--------+ | Result | +--------+ | 130 | +--------+
Пример 4 – Закръгляване на отрицателни числа спрямо положителни числа
Както се вижда в предишните примери, когато се използват положителни числа, стойност с дробна част от .5 или по-голяма се закръглява до следващото цяло число.
Въпреки това, когато използвате отрицателни числа, тези стойности се закръгляват надолу .
SELECT ROUND(1.50) Positive, ROUND(-1.50) Negative;
Резултат:
+----------+----------+ | Positive | Negative | +----------+----------+ | 2 | -2 | +----------+----------+
Закръгляване на числата на приблизителната стойност
Горното правило за закръгляване важи само за числа с точни стойности. За числа с приблизителна стойност резултатът зависи от библиотеката C. Документацията на MySQL посочва това относно числата с приблизителна стойност:
На много системи това означава, че
ROUND()
използва правилото „закръгля до най-близкото четно“:Стойност с дробна част точно по средата между две цели числа се закръгля до най-близкото четно цяло число.
И ето примера, използван на тази страница:
SELECT ROUND(2.5), ROUND(25E-1);
Резултат:
+------------+--------------+ | ROUND(2.5) | ROUND(25E-1) | +------------+--------------+ | 3 | 2 | +------------+--------------+