I MariaDB, FLOOR()
er en indbygget numerisk funktion, der returnerer den største heltalværdi, der ikke er større end dens argument.
Syntaks
Syntaksen ser sådan ud:
FLOOR(X)
Hvor X
er værdien, som handlingen skal anvendes på.
Eksempel
Her er et eksempel:
SELECT FLOOR(3.6789);
Resultat:
+---------------+ | FLOOR(3.6789) | +---------------+ | 3 | +---------------+
Hvis du sender en negativ værdi, får du følgende resultat:
SELECT FLOOR(-3.6789);
Resultat:
+----------------+ | FLOOR(-3.6789) | +----------------+ | -4 | +----------------+
Sammenlignet med ROUND()
FLOOR()
funktionen er forskellig fra ROUND()
fungere. ROUND()
funktion ville runde tallet op i nogle tilfælde og ned i andre. FLOOR()
funktion returnerer på den anden side altid den største heltalværdi, der ikke er større end dens argument.
SELECT
FLOOR(3.6789),
ROUND(3.6789);
Resultat:
+---------------+---------------+ | FLOOR(3.6789) | ROUND(3.6789) | +---------------+---------------+ | 3 | 4 | +---------------+---------------+
Også ROUND()
giver os mulighed for at angive antallet af decimaler, der skal afrundes til:
SELECT
FLOOR(3.6789),
ROUND(3.6789, 2);
Resultat:
+---------------+------------------+ | FLOOR(3.6789) | ROUND(3.6789, 2) | +---------------+------------------+ | 3 | 3.68 | +---------------+------------------+
FLOOR()
er også forskellig fra TRUNCATE()
funktion, som blot afkorter tallet til en given decimal.
Ikke-numeriske argumenter
Her er, hvad der sker, når vi giver et ikke-numerisk argument:
SELECT FLOOR('Ten');
Resultat:
+--------------+ | FLOOR('Ten') | +--------------+ | 0 | +--------------+ 1 row in set, 1 warning (0.000 sec)
Lad os tjekke advarslen:
SHOW WARNINGS;
Resultat:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' | +---------+------+-----------------------------------------+
Manglende argumenter
Kalder FLOOR()
uden et argument resulterer i en fejl:
SELECT FLOOR();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FLOOR'