MariaDB ROUND() vs FLOOR()
发布于
MariaDB 有一个函数和一个在某些方面相似但在其他方面完全不同的函数。ROUND()FLOOR()
以下是MariaDB之间和之间的区别的简要介绍。ROUND()``FLOOR()
区别
简而言之,以下是每个函数之间的区别:
ROUND()将其参数舍入到指定的小数位数。FLOOR()返回不大于其参数的最大整数值。
语法
以下是每个函数的语法和定义。
ROUND()
该函数可以通过以下两种方式使用:ROUND()
ROUND(X)
ROUND(X,D)
ROUND()将参数舍入到小数位。舍入算法取决于 的数据类型。X``D``X
FLOOR()
该函数只能使用一种语法:FLOOR()
FLOOR(X)
FLOOR()返回不大于 的最大整数值。X
差异示例
下面是一个比较,以演示 和 之间的区别:ROUND()``FLOOR()
SELECT
FLOOR(3.6789),
ROUND(3.6789);
输出:
+---------------+---------------+
| FLOOR(3.6789) | ROUND(3.6789) |
+---------------+---------------+
| 3 | 4 |
+---------------+---------------+在本例中,该函数将数字向上舍入,因为下一个数字 () 大于 。ROUND()``8``5
另一方面,该函数只是返回不大于参数 () 的最大整数值。FLOOR()``3.6789
第二个参数
另一个区别是接受可选的第二个参数,而不接受。ROUND()``FLOOR()
第二个参数允许您指定将数字舍入到的小数位数。
例
SELECT
FLOOR(3.6789),
ROUND(3.6789, 2);
输出:
+---------------+------------------+
| FLOOR(3.6789) | ROUND(3.6789, 2) |
+---------------+------------------+
| 3 | 3.68 |
+---------------+------------------+相同结果的示例
这些函数有时可以返回相同的结果。这完全取决于传递的参数的值。
例如,如果我们在值前面放置一个负号,我们会得到相同的结果:
SELECT
FLOOR(-3.6789),
ROUND(-3.6789);
输出:
+----------------+----------------+
| FLOOR(-3.6789) | ROUND(-3.6789) |
+----------------+----------------+
| -4 | -4 |
+----------------+----------------+这并不是说负值总是返回相同的结果 - 它不会。这完全取决于提供的实际值以及由 进行的舍入。ROUND()
下面是负值产生不同结果的示例:
SELECT
FLOOR(-3.3739),
ROUND(-3.3739);
输出:
+----------------+----------------+
| FLOOR(-3.3739) | ROUND(-3.3739) |
+----------------+----------------+
| -4 | -3 |
+----------------+----------------+下面是一个正值返回相同结果的示例:
SELECT
FLOOR(3.3739),
ROUND(3.3739);
输出:
+---------------+---------------+
| FLOOR(3.3739) | ROUND(3.3739) |
+---------------+---------------+
| 3 | 3 |
+---------------+---------------+函数TRUNCATE()
这两个函数都与函数不同,后者只是将值截断为给定的小数位数。TRUNCATE()