为什么 round(143.23,-1) return 140?

Why does round(143.23,-1) return 140?

查询

SELECT round(143.23, -1)
FROM   dual

我以为输出会是142但是我得到的输出是140 谁能帮我解释一下。

第二个参数表示要保留小数点的精度位数。因此,-1 表示小数点 前一位。也就是说,您丢失了 "ones" 数字并四舍五入到最接近的 "tens",结果是 140.

要获得整数(在本例中为 143),您可以将 0 作为第二个参数传递,或者完全忽略它,因为这是默认值。