【发布时间】:2011-10-21 17:14:26
【问题描述】:
我正在尝试计算美元金额的百分比折扣值。在 50% 时,有时您会得到半便士,我需要将其四舍五入到最接近的美分。
在Sql中,我的计算如下:
round(retail * 0.5, 2, 0)
如果我采用以下值,我会得到不同的结果:
- 4.39
- 2.49
我得到的是不圆的:
- 4.39 --> 2.195
- 2.49 --> 1.245
当四舍五入时,我得到:
- 2.195 --> 2.19
- 1.245 --> 1.25
有人告诉我这是“银行四舍五入”的一种形式,但似乎影响舍入方向的值是整数值。
我的问题是我希望最高值会四舍五入到 2.20。如果这确实是银行家四舍五入,并且受此处整数值的影响,那么有人有防止这种行为的例子吗?如果不是银行家四舍五入,有人可以提供解释并可能提供解决方案来获得正常的四舍五入行为吗?
提前致谢!
【问题讨论】:
-
好吧,我在 sql server 2008 中试过这个,我得到 2.200; sql 2000 无法为您提供帮助,但您是否尝试过:select round(4.39*0.5,2,0) => my result =2.2.
标签: sql sql-server tsql sql-server-2000 rounding