I MariaDB, FLOOR()
är en inbyggd numerisk funktion som returnerar det största heltalsvärdet som inte är större än dess argument.
Syntax
Syntaxen ser ut så här:
FLOOR(X)
Där X
är värdet att tillämpa operationen på.
Exempel
Här är ett exempel:
SELECT FLOOR(3.6789);
Resultat:
+---------------+ | FLOOR(3.6789) | +---------------+ | 3 | +---------------+
Att skicka ett negativt värde ger följande resultat:
SELECT FLOOR(-3.6789);
Resultat:
+----------------+ | FLOOR(-3.6789) | +----------------+ | -4 | +----------------+
Jämfört med ROUND()
FLOOR()
funktionen skiljer sig från ROUND()
fungera. ROUND()
funktion skulle avrunda talet uppåt i vissa fall och nedåt i andra. FLOOR()
funktion, å andra sidan, returnerar alltid det största heltalsvärdet som inte är större än dess argument.
SELECT
FLOOR(3.6789),
ROUND(3.6789);
Resultat:
+---------------+---------------+ | FLOOR(3.6789) | ROUND(3.6789) | +---------------+---------------+ | 3 | 4 | +---------------+---------------+
Även ROUND()
tillåter oss att ange antalet decimaler som ska avrundas till:
SELECT
FLOOR(3.6789),
ROUND(3.6789, 2);
Resultat:
+---------------+------------------+ | FLOOR(3.6789) | ROUND(3.6789, 2) | +---------------+------------------+ | 3 | 3.68 | +---------------+------------------+
FLOOR()
skiljer sig också från TRUNCATE()
funktion, som helt enkelt trunkerar talet till en given decimal.
Icke-numeriska argument
Det här är vad som händer när vi tillhandahåller ett icke-numeriskt argument:
SELECT FLOOR('Ten');
Resultat:
+--------------+ | FLOOR('Ten') | +--------------+ | 0 | +--------------+ 1 row in set, 1 warning (0.000 sec)
Låt oss kolla varningen:
SHOW WARNINGS;
Resultat:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' | +---------+------+-----------------------------------------+
Argument saknas
Anropar FLOOR()
utan argument resulterar i ett fel:
SELECT FLOOR();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FLOOR'