MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

MariaDB ROUND() kontra PODŁOGA()

MariaDB ma funkcję ROUND() funkcja i FLOOR() funkcji, które pod pewnymi względami są podobne, ale pod innymi zupełnie inne.

Poniżej znajduje się krótkie podsumowanie różnicy między ROUND() i FLOOR() w MariaDB.

Różnica

Oto różnica między każdą funkcją w skrócie:

  • ROUND() zaokrągla swój argument do określonej liczby miejsc po przecinku.
  • FLOOR() zwraca największą liczbę całkowitą nie większą niż jej argument.

Składnia

Oto składnia i definicje każdej funkcji.

ROUND()

ROUND() funkcja może być używana na dwa sposoby:

ROUND(X)
ROUND(X,D)

ROUND() zaokrągla argument X do D miejsca dziesiętne. Algorytm zaokrąglania zależy od typu danych X .

FLOOR()

FLOOR() funkcja może być używana tylko z jedną składnią:

FLOOR(X)

FLOOR() zwraca największą liczbę całkowitą nie większą niż X .

Przykład różnicy

Oto porównanie pokazujące różnicę między ROUND() i FLOOR() :

SELECT 
    FLOOR(3.6789),
    ROUND(3.6789);

Wynik:

+---------------+---------------+
| FLOOR(3.6789) | ROUND(3.6789) |
+---------------+---------------+
|             3 |             4 |
+---------------+---------------+

W tym przypadku ROUND() funkcja zaokrągliła liczbę w górę, ponieważ następna cyfra (8 ) jest większe niż 5 .

FLOOR() z drugiej strony, po prostu zwrócił największą wartość całkowitą nie większą niż argument (3.6789 ).

Drugi argument

Kolejną różnicą jest to, że ROUND() akceptuje opcjonalny drugi argument, podczas gdy FLOOR() nie.

Drugi argument pozwala określić, do ilu miejsc dziesiętnych należy zaokrąglić liczbę.

Przykład

SELECT 
    FLOOR(3.6789),
    ROUND(3.6789, 2);

Wynik:

+---------------+------------------+
| FLOOR(3.6789) | ROUND(3.6789, 2) |
+---------------+------------------+
|             3 |             3.68 |
+---------------+------------------+

Przykład tego samego wyniku

Te funkcje mogą czasami zwrócić ten sam wynik. Wszystko zależy od wartości przekazywanych argumentów.

Na przykład, jeśli umieścimy znak minus przed wartościami, otrzymamy ten sam wynik:

SELECT 
    FLOOR(-3.6789),
    ROUND(-3.6789);

Wynik:

+----------------+----------------+
| FLOOR(-3.6789) | ROUND(-3.6789) |
+----------------+----------------+
|             -4 |             -4 |
+----------------+----------------+

Nie oznacza to, że wartość ujemna zawsze zwraca ten sam wynik – tak nie jest. Wszystko zależy od rzeczywistych wartości dostarczanych i zaokrąglania, które ma mieć miejsce przez ROUND() .

Oto przykład, w którym wartości ujemne dają różne wyniki:

SELECT 
    FLOOR(-3.3739),
    ROUND(-3.3739);

Wynik:

+----------------+----------------+
| FLOOR(-3.3739) | ROUND(-3.3739) |
+----------------+----------------+
|             -4 |             -3 |
+----------------+----------------+

A oto przykład, w którym wartości dodatnie zwracają ten sam wynik:

SELECT 
    FLOOR(3.3739),
    ROUND(3.3739);

Wynik:

+---------------+---------------+
| FLOOR(3.3739) | ROUND(3.3739) |
+---------------+---------------+
|             3 |             3 |
+---------------+---------------+

TRUNCATE() Funkcja

Obie funkcje różnią się od TRUNCATE() funkcja, która po prostu obcina wartość do określonej liczby miejsc po przecinku.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak HEX() działa w MariaDB

  2. Mój administrator baz danych jest chory — porady dotyczące przełączania awaryjnego bazy danych dla administratorów SysAdmin

  3. MariaDB JSON_VALUE() Objaśnienie

  4. 6 sposobów na dodanie roku do randki w MariaDB

  5. Jak wykryć, czy wartość zawiera co najmniej jedną cyfrę w MariaDB?