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 3
až 5
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 | +------------+--------------+