如果第二个参数(指定小数位数)为负值,会对 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。