在MySQL中,CEILING()和FLOOR()函数与ROUND()函数有何不同?
CEILING() 函数返回不小于X的最小整数值。考虑以下例子 –
mysql> Select CEILING(3.46);
+---------------+
| CEILING(3.46) |
+---------------+
| 4 |
+---------------+
1 行受影响 (0.00 秒)
mysql> Select CEILING(-6.43);
+----------------+
| CEILING(-6.43) |
+----------------+
| -6 |
+----------------+
1 行受影响 (0.02 秒)
FLOOR() 函数返回不大于X的最大整数值。考虑以下例子 –
mysql> Select FLOOR(-6.43);
+--------------+
| FLOOR(-6.43) |
+--------------+
| -7 |
+--------------+
1 行受影响 (0.00 秒)
mysql> Select FLOOR(3.46);
+-------------+
| FLOOR(3.46) |
+-------------+
| 3 |
+-------------+
1 行受影响 (0.00 秒)
ROUND() 函数返回四舍五入到最接近的整数X。如果提供第二个参数D,则该函数返回四舍五入到D位小数的X。D必须为正数,否则将删除小数点右边的所有数字。考虑以下例子 –
mysql>SELECT ROUND(5.693893);
+---------------------------------------------------------+
| ROUND(5.693893) |
+---------------------------------------------------------+
| 6 |
+---------------------------------------------------------+
1 行受影响 (0.00 秒)
mysql>SELECT ROUND(5.693893, 2);
+---------------------------------------------------------+
| ROUND(5.693893,2) |
+---------------------------------------------------------+
| 5.69 |
+---------------------------------------------------------+
1 行受影响 (0.00 秒)
从以上定义和示例中,我们可以观察到以下三个函数之间的区别 –
- ROUND() 函数根据第二个参数D和数字本身(D小数位后的数字>=5或不)将数字向上或向下四舍五入。
- FLOOR() 函数将数字向零舍入,总是向下。
- CEILING() 函数将数字向上舍入,总是向上。
mysql> Select ROUND(1.415,2), FLOOR(1.415), CEILING(1.415);
+----------------+--------------+----------------+
| ROUND(1.415,2) | FLOOR(1.415) | CEILING(1.415) |
+----------------+--------------+----------------+
| 1.42 | 1 | 2 |
+----------------+--------------+----------------+
1 行受影响 (0.00 秒)
阅读更多:MySQL 教程