SQL Server舍入问题

Bat*_*ana 0 sql t-sql sql-server sql-server-2005 sql-server-2008

我正在使用SQL Server 2005.我正在使用ROUND T-SQL函数来舍入十进制列值.但似乎舍入值不正确.

    PRINT ROUND(1890.124854, 2) => 1890.120000
Run Code Online (Sandbox Code Playgroud)

如图所示,ROUND函数返回1890.12,因为它应该是1890.13.有没有人遇到过这个以及什么应该是正确的舍入方式,以便我得到预期值1890.13 ..?

谢谢.

Mit*_*eat 6

ROUND()按计划工作.你指定舍入到2个小数位,这就是你得到的.

返回一个数值,舍入为指定的长度或精度.

舍入表示5或更高的数字上升到最接近,小于5到最接近.

所以,

PRINT ROUND(1890.125000, 2) 
Run Code Online (Sandbox Code Playgroud)

产生 1890.130000

PRINT ROUND(1890.124999, 2) 
Run Code Online (Sandbox Code Playgroud)

产生 1890.120000