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

mysqlmysqli database

如果我们指定第二个参数的负值,那么小数点前的数字将被删除并四舍五入。要删除的数字数量取决于第二个参数的负值。以下示例将演示 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。


相关文章