为什么 SQL 语句 SELECT ROUND(45.926, -1) FROM DUAL 打印 50

1 sql rounding

双重工作如何?我已经用许多值执行了Select Round(45.926,-1) from dual它,它打印 50 而 Select Round(45.926,-2) from dual打印 0。

小智 5

使用ROUND函数时,第二个参数表示结果中要取的小数点后的位数。所以,以下是结果:

SELECT ROUND(45.926) FROM dual;
Run Code Online (Sandbox Code Playgroud)

结果:46,因为没有要考虑的小数位。

SELECT ROUND(45.926, 1) FROM dual;
Run Code Online (Sandbox Code Playgroud)

结果 45.9,考虑小数点后一位

SELECT ROUND(45.926, -1) FROM dual;
Run Code Online (Sandbox Code Playgroud)

结果:50,考虑值为4.5926,四舍五入为5,然后打印结果。

SELECT ROUND(45.926, -2) FROM dual;
Run Code Online (Sandbox Code Playgroud)

结果:0,考虑值为 0.45926,将其四舍五入为 0,然后以原始 10x 打印结果,即 0x100 = 0。

如果你拿了,

SELECT ROUND(55.926, -2) FROM dual;
Run Code Online (Sandbox Code Playgroud)

然后结果将是 100,因为它就像,将 0.55926 舍入到 1,然后是 10x,即 1x100 = 100。