В MariaDB, ROUND()
е вградена числова функция, която закръгля аргумента си до определен брой десетични знаци.
Синтаксис
Функцията може да се използва по следните два начина:
ROUND(X)
ROUND(X,D)
Където X
е стойността за закръгляване и D
е незадължителен аргумент, който определя броя на десетичните знаци, до които да се закръгли.
Пример
Ето един пример:
SELECT ROUND(7.5);
Резултат:
+------------+ | ROUND(7.5) | +------------+ | 8 | +------------+
Предаването на отрицателна стойност води до следния резултат:
SELECT ROUND(-7.5);
Резултат:
+-------------+ | ROUND(-7.5) | +-------------+ | -8 | +-------------+
Посочете десетични знаци
По подразбиране ROUND()
функцията закръгля стойността до нула след десетичната запетая. Можем да посочим броя на десетичните знаци, до които да закръгляме стойността, като подадем втори аргумент.
Пример:
SELECT ROUND(7.5164, 2);
Резултат:
+------------------+ | ROUND(7.5164, 2) | +------------------+ | 7.52 | +------------------+
Отрицателни десетични знаци
Вторият аргумент може да бъде отрицателна стойност, ако е необходимо. Предаването на отрицателна стойност води до цифри в ляво от десетичната запетая да стане нула.
Пример:
SELECT ROUND(3724.51, -2);
Резултат:
+--------------------+ | ROUND(3724.51, -2) | +--------------------+ | 3700 | +--------------------+
В сравнение с FLOOR()
ROUND()
функцията е различна от FLOOR()
функция. ROUND()
функцията закръглява числото нагоре в някои случаи и надолу в други. FLOOR()
функцията, от друга страна, винаги връща най-голямата целочислена стойност, не по-голяма от нейния аргумент.
Ето сравнение, за да демонстрирате тази разлика:
SELECT
FLOOR(3.6789),
ROUND(3.6789);
Резултат:
+---------------+---------------+ | FLOOR(3.6789) | ROUND(3.6789) | +---------------+---------------+ | 3 | 4 | +---------------+---------------+
Също така, FLOOR()
не приема втори аргумент като ROUND()
прави.
ROUND()
също е различен от TRUNCATE()
функция, която просто съкращава числото до даден десетичен знак без закръгляване.
Нечислови аргументи
Ето какво се случва, когато предоставим нечислов аргумент:
SELECT ROUND('Ten');
Резултат:
+--------------+ | ROUND('Ten') | +--------------+ | 0 | +--------------+ 1 row in set, 1 warning (0.028 sec)
Нека проверим предупреждението:
SHOW WARNINGS;
Резултат:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' | +---------+------+-----------------------------------------+
Липсващи аргументи
Извикване на ROUND()
без аргумент води до грешка:
SELECT ROUND();
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ROUND'