V MariaDB, ROUND()
je vestavěná numerická funkce, která zaokrouhluje svůj argument na daný počet desetinných míst.
Syntaxe
Funkci lze použít dvěma následujícími způsoby:
ROUND(X)
ROUND(X,D)
Kde X
je hodnota, která se má zaokrouhlit, a D
je volitelný argument, který určuje počet desetinných míst, na který se má zaokrouhlit.
Příklad
Zde je příklad:
SELECT ROUND(7.5);
Výsledek:
+------------+ | ROUND(7.5) | +------------+ | 8 | +------------+
Předání záporné hodnoty vede k následujícímu výsledku:
SELECT ROUND(-7.5);
Výsledek:
+-------------+ | ROUND(-7.5) | +-------------+ | -8 | +-------------+
Zadejte desetinná místa
Ve výchozím nastavení ROUND()
funkce zaokrouhlí hodnotu na nula desetinných míst. Můžeme zadat počet desetinných míst, na která se má hodnota zaokrouhlit, předáním druhého argumentu.
Příklad:
SELECT ROUND(7.5164, 2);
Výsledek:
+------------------+ | ROUND(7.5164, 2) | +------------------+ | 7.52 | +------------------+
Záporná desetinná místa
Druhý argument může být v případě potřeby záporná hodnota. Předání záporné hodnoty způsobí, že číslice budou vlevo desetinného místa na nulu.
Příklad:
SELECT ROUND(3724.51, -2);
Výsledek:
+--------------------+ | ROUND(3724.51, -2) | +--------------------+ | 3700 | +--------------------+
Ve srovnání s FLOOR()
ROUND()
funkce se liší od funkce FLOOR()
funkce. ROUND()
funkce v některých případech zaokrouhlí číslo nahoru a v jiných dolů. FLOOR()
Funkce na druhou stranu vždy vrací největší celočíselnou hodnotu, která není větší než její argument.
Zde je srovnání, které tento rozdíl demonstruje:
SELECT
FLOOR(3.6789),
ROUND(3.6789);
Výsledek:
+---------------+---------------+ | FLOOR(3.6789) | ROUND(3.6789) | +---------------+---------------+ | 3 | 4 | +---------------+---------------+
Také FLOOR()
nepřijímá druhý argument jako ROUND()
ano.
ROUND()
se také liší od TRUNCATE()
funkce, která jednoduše zkrátí číslo na dané desetinné místo bez jakéhokoli zaokrouhlování.
Nečíselné argumenty
Když poskytneme nečíselný argument, stane se toto:
SELECT ROUND('Ten');
Výsledek:
+--------------+ | ROUND('Ten') | +--------------+ | 0 | +--------------+ 1 row in set, 1 warning (0.028 sec)
Podívejme se na varování:
SHOW WARNINGS;
Výsledek:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' | +---------+------+-----------------------------------------+
Chybí argumenty
Volání ROUND()
bez argumentu vede k chybě:
SELECT ROUND();
Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ROUND'