在做发票时,我想要说1.235到1.23
Select Round(TestData,2) From TestTableRound
为什么我得到结果1.24,考虑到它的中途?我希望这个四舍五入到1.23。
这可能会导致结算时出现差异,有时发票与帐单不符。
好奇,任何帮助都会很棒,谢谢
答案 0 :(得分:5)
也许你可以在四舍五入之前减少一点数量,比如这个
Select Round(TestData-.001,2) From TestTableRound
另一个技巧(对于你的情况)是乘以100,取整数部分,然后除以100
Select
CASE WHEN FLOOR(TestData * 1000)-FLOOR(TestData * 100)*10 <= 5 THEN
FLOOR(TestData * 100)/100
ELSE ROUND(TestData , 2)
END
From TestTableRound
答案 1 :(得分:0)
关于四舍五入的维基百科文章应该有用:http://en.wikipedia.org/wiki/Rounding
您可能正在寻找Banker's Rounding。请参阅有关Microsoft实现的这篇文章:http://support.microsoft.com/en-us/kb/196652
如果没有关于你想要达到的目标的更多细节,我们实际上无法提供更多的帮助。