sql >> Databáze >  >> RDS >> Mysql

Funkce MySQL ROUND() – Zaokrouhlí číslo na daný počet desetinných míst

V MySQL je to ROUND() Funkce umožňuje zaokrouhlit číslo nahoru nebo dolů na daný počet desetinných míst.

Funguje to tak, že jako argument uvedete číslo a máte možnost zvolit, na kolik desetinných míst se má číslo zaokrouhlit. Pokud nezadáte počet desetinných míst, výsledek nebude mít žádná desetinná místa.

Syntaxe

Tuto funkci lze použít jedním z následujících způsobů:

ROUND(X)
ROUND(X,D)

Kde X je číslo a D je počet desetinných míst, na který chcete hodnotu zaokrouhlit. Pokud vynecháte D , bude číslo zaokrouhleno na nula desetinných míst.

Také D může být negativní. Výsledkem je D číslic vlevo od desetinné čárky hodnoty X stát se nulou.

Příklad 1 – Použití jednoho argumentu

Zde je základní příklad, který demonstruje, co se stane, když neposkytneme druhý argument.

SELECT ROUND(1.49) Result;

Výsledek:

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

V tomto případě je číslo zaokrouhleno dolů na nejbližší celé číslo.

Pokud zvětšíme zlomkovou část, stane se toto:

SELECT ROUND(1.50) Result;

Výsledek:

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

V tomto případě je číslo zaokrouhleno nahoru.

Příklad 2 – Použití dvou argumentů

Zde je návod, jak můžeme použít druhý argument k určení desetinných míst, na která se má číslo zaokrouhlit.

SELECT ROUND(1.234, 2) Result;

Výsledek:

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

A toto se stane, když zvětším poslední číslici na 5:

SELECT ROUND(1.235, 2) Result;

Výsledek:

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

Samozřejmě bychom mohli použít mnohem více desetinných míst. Mohli bychom například oříznout mnoho desetinných míst.

SELECT ROUND(1.23456789123456789, 8) Result;

Výsledek:

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

Nebo bychom mohli zvýšit počet desetinných míst.

SELECT ROUND(1.234, 8) Result;

Výsledek:

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

Příklad 3 – Použití záporné hodnoty pro druhý argument

Zde je návod, jak můžeme použít zápornou hodnotu u druhého argumentu, abychom způsobili, že části nezlomkové části budou zaokrouhleny na nulu.

SELECT ROUND(123.456, -1) Result;

Výsledek:

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

A takto se to zaokrouhlí, když zvýšíme 35 nebo více.

SELECT ROUND(125.456, -1) Result;

Výsledek:

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

Příklad 4 – Zaokrouhlení záporných čísel vs. kladných čísel

Jak je vidět v předchozích příkladech, při použití kladných čísel je hodnota se zlomkovou částí 0,5 nebo větší zaokrouhlena nahoru na další celé číslo.

Při použití záporných čísel se však takové hodnoty zaokrouhlí dolů .

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

Výsledek:

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

Zaokrouhlení čísel přibližných hodnot

Výše uvedené pravidlo zaokrouhlování platí pouze pro čísla s přesnou hodnotou. U čísel přibližných hodnot závisí výsledek na knihovně C. Dokumentace MySQL uvádí toto o přibližných hodnotách:

Na mnoha systémech to znamená, že ROUND() používá pravidlo „zaokrouhlit na nejbližší sudé“:Hodnota se zlomkovou částí přesně v polovině mezi dvěma celými čísly se zaokrouhlí na nejbližší sudé celé číslo.

A zde je příklad použitý na této stránce:

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

Výsledek:

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

  1. Dynamické názvy tabulek ve funkci uložené procedury

  2. SQL dotaz pro nalezení posledního dne v měsíci

  3. Jak nastavit replikaci MySQL v RHEL, Rocky a AlmaLinux

  4. DROP DATABASE MySQL