W MariaDB, ROUND()
jest wbudowaną funkcją numeryczną, która zaokrągla swój argument do określonej liczby miejsc po przecinku.
Składnia
Funkcji można używać na dwa sposoby:
ROUND(X)
ROUND(X,D)
Gdzie X
jest wartością do zaokrąglenia, a D
jest opcjonalnym argumentem, który określa liczbę miejsc dziesiętnych, do których należy go zaokrąglić.
Przykład
Oto przykład:
SELECT ROUND(7.5);
Wynik:
+------------+ | ROUND(7.5) | +------------+ | 8 | +------------+
Przekazanie wartości ujemnej daje następujący wynik:
SELECT ROUND(-7.5);
Wynik:
+-------------+ | ROUND(-7.5) | +-------------+ | -8 | +-------------+
Określ miejsca dziesiętne
Domyślnie ROUND()
funkcja zaokrągla wartość do zera miejsc po przecinku. Możemy określić liczbę miejsc dziesiętnych do zaokrąglenia wartości, przekazując drugi argument.
Przykład:
SELECT ROUND(7.5164, 2);
Wynik:
+------------------+ | ROUND(7.5164, 2) | +------------------+ | 7.52 | +------------------+
Ujemne miejsca dziesiętne
Drugi argument może być wartością ujemną, jeśli jest to wymagane. Przekazanie wartości ujemnej powoduje, że cyfry są w lewo miejsca dziesiętnego na zero.
Przykład:
SELECT ROUND(3724.51, -2);
Wynik:
+--------------------+ | ROUND(3724.51, -2) | +--------------------+ | 3700 | +--------------------+
W porównaniu z FLOOR()
ROUND()
funkcja różni się od funkcji FLOOR()
funkcjonować. ROUND()
funkcja zaokrągla liczbę w górę w niektórych przypadkach, aw innych w dół. FLOOR()
z drugiej strony funkcja zawsze zwraca największą liczbę całkowitą nie większą niż jej argument.
Oto porównanie pokazujące tę różnicę:
SELECT
FLOOR(3.6789),
ROUND(3.6789);
Wynik:
+---------------+---------------+ | FLOOR(3.6789) | ROUND(3.6789) | +---------------+---------------+ | 3 | 4 | +---------------+---------------+
Również FLOOR()
nie akceptuje drugiego argumentu, takiego jak ROUND()
tak.
ROUND()
różni się także od TRUNCATE()
funkcja, która po prostu obcina liczbę do określonego miejsca po przecinku, bez żadnego zaokrąglania.
Argumenty nieliczbowe
Oto, co się dzieje, gdy dostarczamy argument nieliczbowy:
SELECT ROUND('Ten');
Wynik:
+--------------+ | ROUND('Ten') | +--------------+ | 0 | +--------------+ 1 row in set, 1 warning (0.028 sec)
Sprawdźmy ostrzeżenie:
SHOW WARNINGS;
Wynik:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' | +---------+------+-----------------------------------------+
Brakujące argumenty
Wywołanie ROUND()
bez argumentu powoduje błąd:
SELECT ROUND();
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ROUND'