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'