我的应用需要将数字四舍五入到小数点后两位。
我有一个包含4个字段的文档:x
,y
,z
和Amount
。而且:
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'对我来说不起作用,因为我们有现有数据,而其他一些计算则取决于'金额'的舍入值。
答案 0 :(得分:0)
您可以将完整(非圆形)SubAmounts存储在变量中(例如,S1将包含2.891,S2将为0.413,S3将为0.413,S4将为0.413)。 要填充您的文档,只需将SubAmount1作为舍入值的S1,作为SubAmount2的舍入值S2,作为SubAmount3的舍入值S3,作为SubAmount4的舍入值S4。通过舍入总和(S1 + S2 + S3 + S4)获得TotalAmount的值。 希望它可以帮到你。