我再次陷入困境,寻找地球上聪明的人类来帮助我。
背景
我有一个应用程序,它以给定的百分比将金额分配给某些用户。假设我有35000美元,它会以一定的比例将金额分配给3个用户(A,B和C)。所以分配的金额将是
A - 5691.05459265518
B - 14654.473815207
C - 14654.4715921378
总计最高$ 35000
问题
我必须在前端以2个十进制空格而不是浮点数提供结果。所以我使用SQL Server的循环函数,精度值为2,将这些转换为2个十进制空格并进行舍入。但问题是,当我总计这些价值时,这个价格为34999.9999而不是35000美元。
我的发现
我搜索了一下然后找到了
如果您要舍入的表达式以5结尾,则Round() 函数将对表达式进行舍入,以使最后一位数为偶数 数。以下是一些例子:
回合(34.55,1) - 结果:34.6(回合)
回合(34.65,1) - 结果:34.6(向下舍入)
所以从技术上讲,答案是正确的,但我正在寻找一种函数或方法来将值精确地舍入到它应该是什么。我发现,如果我开始四舍五入(如果值小于5,则将前一个数字从前一个数字增加1)从小数点后的最后一个数字开始,并继续回溯,而我只剩下2个小数位。
请指教。