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

时间:2017-02-13 05:05:42

标签: sql rounding

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

2 个答案:

答案 0 :(得分:3)

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

SELECT ROUND(45.926) FROM dual;

结果:46因为没有考虑小数点后的位置。

SELECT ROUND(45.926, 1) FROM dual;

结果45.9,考虑小数点后的1位

SELECT ROUND(45.926, -1) FROM dual;

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

SELECT ROUND(45.926, -2) FROM dual;

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

如果你被带走,

SELECT ROUND(55.926, -2) FROM dual;

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

答案 1 :(得分:0)

Round(n,m) - 将数字n舍入到小数位数m。

对于m = -1,它将数字舍入到第十位,使得45.926到50,因为它大于45

对于m = -2,它将数字四舍五入为100。由于45.926小于50,它变为0.如果你尝试回合(51,-2),你应该得到100