我有一个源值,我需要应用多个百分比,但同时,百分比必须考虑其他百分比。
举个例子:
值 = 100
百分比1 = 10%
百分比2 = 15%
百分比3 = 17%
我需要计算出最终值是多少,但是在添加 Percentage1 时,它必须考虑 Percentage2 和 Percentage3 的值。
我目前管理此问题的唯一方法是使用其他百分比的最后一个值递归计算该值,直到没有更多变化,但我什至不确定这是否正确。
有没有更聪明的计算方法?
编辑:这基本上是为了计算多重费用。因此,假设您在 eBay 上发布了一个列表,并且您在 eBay 上列出了 10% 的费用,而买家通过贝宝购买了商品,并且您为贝宝交易支付了 15% 的费用,然后您又被收取了 17% 的费用,原因是运输,我们正在尝试计算最终费用是多少,然后相应地调整价值。
这是我正在使用的代码:
Dim Value As Decimal = 100
Dim Fee1Percent As Decimal = 0.1
Dim Fee2Percent As Decimal = 0.15
Dim Fee3Percent As Decimal = 0.17
Dim PreviousFee1 As Decimal
Dim PreviousFee2 As Decimal
Dim PreviousFee3 As Decimal
Dim Fee1 As Decimal
Dim Fee2 As Decimal
Dim Fee3 As Decimal
Do
PreviousFee1 = Fee1
PreviousFee2 = Fee2
PreviousFee3 = Fee3
Fee1 = Math.Round((Value + PreviousFee2 + PreviousFee3) * Fee1Percent, 4, MidpointRounding.AwayFromZero)
Fee2 = Math.Round((Value + PreviousFee1 + PreviousFee3) * Fee2Percent, 4, MidpointRounding.AwayFromZero)
Fee3 = Math.Round((Value + PreviousFee1 + PreviousFee2) * Fee3Percent, 4, MidpointRounding.AwayFromZero)
Loop Until PreviousFee1 = Fee1 AndAlso PreviousFee2 = Fee2 AndAlso PreviousFee3 = Fee3
这是我的递归列表,所以你从初始值 100 开始,然后使用之前其他费用的值,直到没有更多变化(四舍五入到小数点后 4 位)
10.0 15.00 17.00
13.200 19.0500 21.2500
14.0300 20.1675 22.4825
14.2650 20.4769 22.8136
14.3291 20.5618 22.9061
14.3468 20.5853 22.9315
14.3517 20.5917 22.9385
14.3530 20.5935 22.9404
14.3534 20.5940 22.9409
14.3535 20.5941 22.9411
14.3535 20.5942 22.9411
14.3535 20.5942 22.9411
所以在这种情况下,我的最终总和是 157.8888