如何修复7%,其中6%,5%效果很好

时间:2010-12-26 11:36:21

标签: math billing

案例1(折扣6%):

Subtotal:   750.00
Discount:   45.00
Handling cost:  24.32
21% VAT:    0.00
Total (this is the amount you will deposit):    729.32

案例2(折扣7%):

Subtotal:   1250.00
Discount:   87.50
Handling cost:  39.88
21% VAT:    0.00
Total (this is the amount you will deposit):    1202.38 

我在申请这个公式的地方:

(729.32  - 0.35) / 1.034/ 0.94   =  750.00    (<<--- CORRECT ) ?

(1202.38 - 0.35) / 1.034/ 0.93   = 1250.01    (<<--- My problem why not 1250.00) ?

如何纠正7%公式以获得1250.00?而不是分数误差。

2 个答案:

答案 0 :(得分:1)

了解原始配方的位置以及您希望每个部分应该做的事情真的很有帮助。事实上,我被迫做了一些额外的工作,只是为了理解你的公式中的常数如何与你的例子中给出的成本相关。

您的处理费用似乎是根据以下公式计算的:

0.35 + (subtotal - discount) * 0.034

我不知道为什么0.35存在。

您的折扣似乎是根据公式计算的:

subtotal * discount rate, (where discount rate has already been converted to a decimal)

总计似乎是根据公式计算的:

subtotal + handling costs - discount

写完这篇文章之后,还有一些想法,我猜你想要进行反向计算以确定小计,只知道费率和小计。让我们从我们所知道的开始,然后根据需要重新安排公式。

subtotal = total + discount - handling costs
subtotal = total + subtotal * discount rate -  (0.35 + (subtotal - discount) * 0.034)
subtotal (1 - discount rate) = total - (0.35 + subtotal - subtotal * discount rate) * 0.034
subtotal (1 - discount rate) = total - 0.35 - subtotal (1 - discount rate) * 0.034
subtotal (1 - discount rate) + subtotal (1 - discount rate) * 0.034 = total - 0.35
subtotal (1 - discount rate) (1 + 0.034) = total - 0.35
subtotal (1 - discount rate) * 1.034) = total - 0.35
subtotal = (total - 0.35) / ((1 - discount rate) * (1.034))

所以好消息是我提出了与你相同的数学方程式,现在大部分都了解你是如何达到它的。坏消息是,在第2号案例的数字冲击时,仍然有一百分之一。

这个小错误来自于我们实际上正在处理舍入数字的事实。当最初计算处理成本和折扣时,它们将四舍五入到最接近的百分位数。这可以被视为舍入误差。当它们加在一起时,舍入误差变大。在处理百分比和价格时,这是正常的副产品。

当反向计算完成时,起始编号(总计)包含舍入误差,并且最终编号(小计)可以预期接近预期值,但不保证是原始小计。同样,这是由于舍入误差和首次计算总数的固有不精确性。

我自己的数学不足以预测和纠正公式中的舍入误差。但是,我确实有一个关于如何检测它并在事后纠正它的建议。在计算反向小计后,该数字可用于进行正向计算。如果项目没有按预期加起来,请应用“软糖因子”并再试一次。根据需要重复。它很乱,而且不是特别优雅,但它应该有效。

希望这有帮助。

答案 1 :(得分:0)

我认为这只是浮点运算的IEEE标准。有一个工具可以显示,实际发生了什么:

http://www.h-schmidt.net/FloatApplet/IEEE754.html