我正在用C#和MySQL开发一个应用程序。我需要帮助创建一个函数来计算有兴趣的延迟付款的罚款。
鉴于:
A是支付金额(1000)
我是延迟付款的利息(1%)
P是判罚结果
计算的逻辑应该是:
如果A = 1000延迟一个月,P应为10(1000/100 * 1%)
如果A = 1000延迟两个月,P应该是10 + 20(上个月罚款的两倍)
如果A = 1000延迟三个月,P应为10 + 20 + 40
等
我不知道如何实现这一点。任何专家的想法都将有助于使用存储过程(MySQL)或C#中的函数。
ACUBE。
答案 0 :(得分:0)
您要找的是sum of finite geometric series。
在你的情况下 a 是1%( baseInterest ), n 是月数, r 是罚款乘数。
所以你的兴趣百分比计算看起来像(在C#中):
var interestPercents = baseInterest * (1 - Math.Pow(penaltyMultiplier, delayInMonths))/(1 - penaltyMultiplier);
然后你只需将金额乘以所得的百分比。