Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Funkcja MySQL ROUND() — zaokrąglanie liczby do podanej liczby miejsc dziesiętnych

W MySQL funkcja ROUND() funkcja pozwala zaokrąglić liczbę w górę lub w dół do określonej liczby miejsc po przecinku.

Działa to tak, że podajesz liczbę jako argument i masz możliwość wyboru, do ilu miejsc po przecinku chcesz zaokrąglić liczbę. Jeśli nie określisz liczby miejsc dziesiętnych, wynik nie będzie zawierał miejsc dziesiętnych.

Składnia

Tej funkcji można używać na jeden z następujących sposobów:

ROUND(X)
ROUND(X,D)

Gdzie X to liczba i D to liczba miejsc dziesiętnych, do których ma być zaokrąglona. Jeśli pominiesz D , liczba zostanie zaokrąglona do zera miejsc po przecinku.

Również D może być ujemna. Daje to w wyniku D cyfry po przecinku wartości X stać się zerem.

Przykład 1 – użycie jednego argumentu

Oto podstawowy przykład pokazujący, co się dzieje, gdy nie podamy drugiego argumentu.

SELECT ROUND(1.49) Result;

Wynik:

+--------+
| Result |
+--------+
|      1 |
+--------+

W tym przypadku liczba jest zaokrąglana w dół do najbliższej liczby całkowitej.

Jeśli zwiększymy część ułamkową, dzieje się tak:

SELECT ROUND(1.50) Result;

Wynik:

+--------+
| Result |
+--------+
|      2 |
+--------+

W tym przypadku liczba jest zaokrąglana w górę.

Przykład 2 – użycie dwóch argumentów

Oto, jak możemy użyć drugiego argumentu do określenia miejsc dziesiętnych, do których należy zaokrąglić liczbę.

SELECT ROUND(1.234, 2) Result;

Wynik:

+--------+
| Result |
+--------+
|   1.23 |
+--------+

A oto, co się stanie, gdy zwiększę ostatnią cyfrę do 5:

SELECT ROUND(1.235, 2) Result;

Wynik:

+--------+
| Result |
+--------+
|   1.24 |
+--------+

Oczywiście moglibyśmy użyć znacznie więcej miejsc po przecinku. Na przykład możemy skrócić wiele miejsc po przecinku.

SELECT ROUND(1.23456789123456789, 8) Result;

Wynik:

+------------+
| Result     |
+------------+
| 1.23456789 |
+------------+

Lub możemy zwiększyć liczbę miejsc po przecinku.

SELECT ROUND(1.234, 8) Result;

Wynik:

+------------+
| Result     |
+------------+
| 1.23400000 |
+------------+

Przykład 3 – użycie wartości ujemnej w drugim argumencie

Oto jak możemy użyć wartości ujemnej drugiego argumentu, aby spowodować zaokrąglenie części nieułamkowej do zera.

SELECT ROUND(123.456, -1) Result;

Wynik:

+--------+
| Result |
+--------+
|    120 |
+--------+

A oto jak to się zaokrągla, jeśli zwiększymy 3 do 5 lub więcej.

SELECT ROUND(125.456, -1) Result;

Wynik:

+--------+
| Result |
+--------+
|    130 |
+--------+

Przykład 4 – Zaokrąglanie liczb ujemnych a liczb dodatnich

Jak widać w poprzednich przykładach, podczas używania liczb dodatnich, wartość z częścią ułamkową 0,5 lub większą jest zaokrąglana w górę do następnej liczby całkowitej.

Jednak w przypadku liczb ujemnych takie wartości są zaokrąglane w dół .

SELECT 
  ROUND(1.50) Positive,
  ROUND(-1.50) Negative;

Wynik:

+----------+----------+
| Positive | Negative |
+----------+----------+
|        2 |       -2 |
+----------+----------+

Zaokrąglanie przybliżonych wartości

Powyższa zasada zaokrąglania dotyczy tylko liczb o dokładnej wartości. W przypadku liczb przybliżonych wynik zależy od biblioteki C. Dokumentacja MySQL mówi o liczbach przybliżonych:

W wielu systemach oznacza to, że ROUND() używa zasady „zaokrąglaj do najbliższej parzystej”:wartość z częścią ułamkową dokładnie w połowie między dwiema liczbami całkowitymi jest zaokrąglana do najbliższej parzystej liczby całkowitej.

A oto przykład użyty na tej stronie:

SELECT 
  ROUND(2.5), 
  ROUND(25E-1);

Wynik:

+------------+--------------+
| ROUND(2.5) | ROUND(25E-1) |
+------------+--------------+
|          3 |            2 |
+------------+--------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL ON DUPLICATE KEY UPDATE dla wielu wierszy wstawia się w jednym zapytaniu

  2. PHP i MySQL:mysqli_num_rows() oczekuje, że parametr 1 to mysqli_result, podana wartość logiczna

  3. java.sql.SQLException Indeks parametru poza zakresem (1> liczba parametrów, czyli 0)

  4. Równoważenie obciążenia bazy danych w chmurze — MySQL Master Failover z ProxySQL 2.0:część pierwsza (wdrożenie)

  5. Jak mogę wyświetlić wyniki zapytania MySQL w formacie CSV?