0
我的应用程序需要将数字四舍五入到小数点后两位。我有一个文档有4个字段:x
,y
,z
和Amount
,例如。和:不正确的结果与总和为2的小数整数
Amount = x*y/z;
这里是我的问题:
TotalAmount: x(100)*y(41.30)/z(1000) = 4.13.
SubAmount1: x(70)*y(41.30)/z(1000) = 2.89 [2.891 before rounding]
SubAmount2: x(10)*y(41.30)/z(1000) = 0.41 [0.413 before rounding]
SubAmount3: x(10)*y(41.30)/z(1000) = 0.41 [0.413 before rounding]
SubAmount4: x(10)*y(41.30)/z(1000) = 0.41 [0.413 before rounding]
现在所有'SubAmounts'
的总和不等于'TotalAmount'
。由于四舍五入取得0.01
的区别。
我该如何解决这个问题?请分享你的建议。
注意:保存完整小数位'2.891'对我无效,因为我们有现有数据,其他一些计算取决于“金额”的四舍五入值。
你想改变什么 - 总数或其中一个数额? – Mark
你想实现什么?制作一个处理小计四舍五入的求和函数? – Pieter
*保存完整的小数位'2.891'不适用于我* - >那么您如何期待它能给出真正的结果?浮点运算也有一些舍入错误,所以获得实际结果的可能性很小。 –