如果 MySQL ROUND() 函数的第二个参数(指定小数位数)为负值,会对输出产生什么影响?


如果我们指定第二个参数的负值,则小数点前的数字将被删除并四舍五入。要删除的数字位数取决于负第二个参数的值。以下示例将演示 ROUND() 函数输出的变化,具体取决于第二个参数的负值。

mysql> Select ROUND(1789.456,-1);
+--------------------+
| ROUND(1789.456,-1) |
+--------------------+
|               1790 |
+--------------------+
1 row in set (0.00 sec)  

上面的查询返回 1790,因为第一个数字(由于值为 -1 而要删除)是小数点前的 9(大于 5),因此它前面的数字 8 将四舍五入为 9。

mysql> Select ROUND(1789.456,-2);
+--------------------+
| ROUND(1789.456,-2) |
+--------------------+
|               1800 |
+--------------------+
1 row in set (0.00 sec)  

上面的查询返回 1800,因为第二个数字(由于值为 -2 而要删除)是小数点前的 8(大于 5),因此它前面的数字 7 将四舍五入为 8。

mysql> Select ROUND(1789.456,-3);
+--------------------+
| ROUND(1789.456,-3) |
+--------------------+
|               2000 |
+--------------------+
1 row in set (0.00 sec)  

上面的查询返回 2000,因为第三个数字(由于值为 -3 而要删除)是小数点前的 7(大于 5),因此它前面的数字 1 将四舍五入为 2。

mysql> Select ROUND(1789.456,-4);
+--------------------+
| ROUND(1789.456,-4) |
+--------------------+
|                  0 |
+--------------------+
1 row in set (0.00 sec)  

上面的查询返回 0,因为小数点前的总数字位数为 4,而第二个参数的值为 -4。

更新于: 2020年2月10日

1K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告