Rounds down number and returns the nearest integer that is no greater than the value of number.
Syntax
bigint floor(<number>)
Parameters
number: required. A value of the DOUBLE or DECIMAL type. If the input value is of the STRING or BIGINT type, the value is implicitly converted into a value of the DOUBLE type before calculation.
Return value
A value of the BIGINT type is returned. If the value of number is null, null is returned.
Sample data
This section provides sample source data and examples for you to understand how to use the functions. In this topic, a table named mf_math_fun_t is created and data is inserted into the table. Sample statements:
create table if not exists mf_math_fun_t(
int_data int,
bigint_data bigint,
double_data double,
decimal_data decimal,
float_data float,
string_data string
);
insert into mf_math_fun_t values
(null, -10, 0.525, 0.525BD, cast(0.525 as float), '10'),
(-20, null, -0.1, -0.1BD, cast(-0.1 as float), '-10'),
(0, -1, null, 20.45BD, cast(-1 as float), '30'),
(-40, 4, 0.89, null, cast(0.89 as float), '-30'),
(5, -50, -1, -1BD, null, '50'),
(-60, 6, 1.5, 1.5BD, cast(1.5 as float), '-50'),
(-1, -70, -7.5, -7.5BD, cast(-7.5 as float),null ),
(-80, 1, -10.2, -10.2BD, cast(-10.2 as float), '-1' ),
(9, -90, 2.58, 2.58BD, cast(2.58 as float), '0'),
(-100, 10, -5.8, -5.8BD, cast(-5.8 as float), '-90');
Query data from the mf_math_fun_t table. Sample statement:
select * from mf_math_fun_t;
-- The following result is returned:
+------------+-------------+-------------+--------------+------------+-------------+
| int_data | bigint_data | double_data | decimal_data | float_data | string_data |
+------------+-------------+-------------+--------------+------------+-------------+
| NULL | -10 | 0.525 | 0.525 | 0.525 | 10 |
| -20 | NULL | -0.1 | -0.1 | -0.1 | -10 |
| 0 | -1 | NULL | 20.45 | -1.0 | 30 |
| -40 | 4 | 0.89 | NULL | 0.89 | -30 |
| 5 | -50 | -1.0 | -1 | NULL | 50 |
| -60 | 6 | 1.5 | 1.5 | 1.5 | -50 |
| -1 | -70 | -7.5 | -7.5 | -7.5 | NULL |
| -80 | 1 | -10.2 | -10.2 | -10.2 | -1 |
| 9 | -90 | 2.58 | 2.58 | 2.58 | 0 |
| -100 | 10 | -5.8 | -5.8 | -5.8 | -90 |
+------------+-------------+-------------+--------------+------------+-------------+
Example: static data
-- The return value is 1.
select floor(1.2);
-- The return value is 0.
select floor(0.1);
-- The return value is -2.
select floor(-1.2);
-- The return value is -1.
select floor(-0.1);
-- The return value is 0.
select floor(0.0);
-- The return value is 0.
select floor(-0.0);
-- The return value is null.
select floor(null);
Example: table data
Round down a number based on the sample data. Sample statement:
select floor(bigint_data) as bigint_new, floor(double_data) as double_new, floor(decimal_data) as decimal_new, floor(string_data) as string_new from mf_math_fun_t;
The following result is returned:
+------------+------------+-------------+------------+
| bigint_new | double_new | decimal_new | string_new |
+------------+------------+-------------+------------+
| -10 | 0 | 0 | 10 |
| NULL | -1 | -1 | -10 |
| -1 | NULL | 20 | 30 |
| 4 | 0 | NULL | -30 |
| -50 | -1 | -1 | 50 |
| 6 | 1 | 1 | -50 |
| -70 | -8 | -8 | NULL |
| 1 | -11 | -11 | -1 |
| -90 | 2 | 2 | 0 |
| 10 | -6 | -6 | -90 |
+------------+------------+-------------+------------+
Related functions
FLOOR is a mathematical function. For more information about functions related to data computing and conversion, see Mathematical functions.