第二个参数的负值(指定小数位数)对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。

猜你喜欢