【发布时间】:2011-07-21 13:42:45
【问题描述】:
我们遇到的问题归结为以下两种说法:
select convert(float, (convert(float,5741.61)/convert(float, 196.00)) * convert(float,14.00)) as unrounded, round(convert(float, (convert(float,5741.61)/convert(float, 196.00)) * convert(float,14.00)), 2) as roundedTo2dp
select convert(float, 410.115) as unrounded, ROUND( convert(float, 410.115), 2) as roundedTo2dp
第一个语句使用浮点数来计算 410.115 的值,并且该结果使用 round() 到小数点后 2 位。四舍五入的值为 410.11。
第二条语句使用浮点值 410.115 并将其四舍五入到小数点后 2 位。四舍五入的结果为 410.12。
为什么一个四舍五入的值相同,而另一个四舍五入?
如何让第一条语句四舍五入到 410.12?
编辑:为格式化道歉——stackoverflow 在这台机器上没有显示任何格式(很奇怪)。
【问题讨论】: