V MariaDB, FLOOR()
je vestavěná numerická funkce, která vrací největší celé číslo, které není větší než jeho argument.
Syntaxe
Syntaxe vypadá takto:
FLOOR(X)
Kde X
je hodnota, na kterou se má operace použít.
Příklad
Zde je příklad:
SELECT FLOOR(3.6789);
Výsledek:
+---------------+ | FLOOR(3.6789) | +---------------+ | 3 | +---------------+
Předání záporné hodnoty vede k následujícímu výsledku:
SELECT FLOOR(-3.6789);
Výsledek:
+----------------+ | FLOOR(-3.6789) | +----------------+ | -4 | +----------------+
Ve srovnání s ROUND()
FLOOR()
funkce se liší od funkce ROUND()
funkce. ROUND()
Funkce by v některých případech zaokrouhlovala čí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.
SELECT
FLOOR(3.6789),
ROUND(3.6789);
Výsledek:
+---------------+---------------+ | FLOOR(3.6789) | ROUND(3.6789) | +---------------+---------------+ | 3 | 4 | +---------------+---------------+
Také ROUND()
nám umožňuje zadat počet desetinných míst na zaokrouhlení:
SELECT
FLOOR(3.6789),
ROUND(3.6789, 2);
Výsledek:
+---------------+------------------+ | FLOOR(3.6789) | ROUND(3.6789, 2) | +---------------+------------------+ | 3 | 3.68 | +---------------+------------------+
FLOOR()
se také liší od TRUNCATE()
funkce, která jednoduše zkrátí číslo na dané desetinné místo.
Nečíselné argumenty
Když poskytneme nečíselný argument, stane se toto:
SELECT FLOOR('Ten');
Výsledek:
+--------------+ | FLOOR('Ten') | +--------------+ | 0 | +--------------+ 1 row in set, 1 warning (0.000 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í FLOOR()
bez argumentu vede k chybě:
SELECT FLOOR();
Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FLOOR'