En MariaDB, FLOOR()
es una función numérica incorporada que devuelve el valor entero más grande que no sea mayor que su argumento.
Sintaxis
La sintaxis es así:
FLOOR(X)
Donde X
es el valor al que aplicar la operación.
Ejemplo
He aquí un ejemplo:
SELECT FLOOR(3.6789);
Resultado:
+---------------+ | FLOOR(3.6789) | +---------------+ | 3 | +---------------+
Pasar un valor negativo produce el siguiente resultado:
SELECT FLOOR(-3.6789);
Resultado:
+----------------+ | FLOOR(-3.6789) | +----------------+ | -4 | +----------------+
Comparado con ROUND()
El FLOOR()
la función es diferente a ROUND()
función. El ROUND()
La función redondearía el número hacia arriba en algunos casos y hacia abajo en otros. El FLOOR()
La función, por otro lado, siempre devuelve el valor entero más grande que no sea mayor que su argumento.
SELECT
FLOOR(3.6789),
ROUND(3.6789);
Resultado:
+---------------+---------------+ | FLOOR(3.6789) | ROUND(3.6789) | +---------------+---------------+ | 3 | 4 | +---------------+---------------+
Además, ROUND()
nos permite especificar el número de decimales a redondear:
SELECT
FLOOR(3.6789),
ROUND(3.6789, 2);
Resultado:
+---------------+------------------+ | FLOOR(3.6789) | ROUND(3.6789, 2) | +---------------+------------------+ | 3 | 3.68 | +---------------+------------------+
FLOOR()
también es diferente al TRUNCATE()
función, que simplemente trunca el número a un lugar decimal dado.
Argumentos no numéricos
Esto es lo que sucede cuando proporcionamos un argumento no numérico:
SELECT FLOOR('Ten');
Resultado:
+--------------+ | FLOOR('Ten') | +--------------+ | 0 | +--------------+ 1 row in set, 1 warning (0.000 sec)
Revisemos la advertencia:
SHOW WARNINGS;
Resultado:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' | +---------+------+-----------------------------------------+
Argumentos faltantes
Llamando a FLOOR()
sin un argumento da como resultado un error:
SELECT FLOOR();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FLOOR'