我有一个源值,我需要应用多个百分比,但同时,百分比必须考虑其他百分比。
以例如:
值= 100
百分比1 = 10%
百分比2 = 15%
百分比3 = 17%
我需要确定最终值是什么,但是在添加Percentage1时,它必须考虑Percentage2和Percentage3中的值。
我目前管理此问题的唯一方法是使用其他百分比的最后一个值递归计算值,直到没有更多更改,但我甚至不确定这是否正确。
有更智能的计算方法吗?
编辑:这基本上是计算多个费用。 所以说你在eBay上贴了一个上市,你在eBay上收取10%的上市费用,买家通过PayPal买了,你付了15%的Paypal交易,然后再收取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
答案 0 :(得分:1)
您可以通过多种方式设计此分数功能:
0.10 * 0.15 * 0.17
*值min(0.10, 0.15, 0.17)
* value = 0.10
* value 0.7
的权重0.1
,0.2
和1.0
):(0.10 * 0.7 + 0.15 * 0.1 + 0.17 * 0.2)
*值这取决于您想要优化的内容
答案 1 :(得分:0)
问题是我的计算错误的方法:我必须使用百分比的反向计算来标记基本价格
所以使用10%,15%和17%,这里是数学:100 /(1 - 0.1 - 0.15 - 0.17)= 172.414
证明:
10% - 17.2414
15% - 25.8621
17% - 29.3103
最终总计72.414,离开,正好是100。