复利计算工具 wpf

最近看完《30年后,你拿什么养活自己?》这本书,了解到复利的魅力,就打算把里面的计算方式用程序写出来。

先看复利的概念:复利是指在每经过一个计息期后,都要将所生利息加入本金,以计算下期的利息。这样,在每一个计息期,上一个计息期的利息都将成为生息的本金,即以利生利,也就是俗称的“利滚利”。

《30年后,你拿什么养活自己?》这本书中,在每个周期后有追加的资金,所以这里复利的计算关键包括:本金,周期利息,每周期追加资金,周期数。也就是,从第二个周期起,每个周期开始本利和加上每周期追加资金才是新周期开始的本金。

举个例子:如果本金是50000元,周期利率是10%,每周期追加资金是60000元,共20个周期,运行结果截图如下:

 可以看出,在20个周期中,投入的本金为1190000元,产生利息为2522874元。如果拿做资金的储蓄和投资方案,还是可行的。

 核心代码:

/// <summary>
/// 计算复利,并显示给用户
/// </summary>
/// <param name="principal">本金</param>
/// <param name="addFundsCycle">以后每周期增加资金</param>
/// <param name="cycleRate">周期利率</param>
/// <param name="cycleCount">周期数</param>
private void CalcCompoundInterest(
double principal, double addFundsCycle, double cycleRate, int cycleCount)
{
// 初始化为第一个周期的数据

// 总的本金,是本金与所有追加的资金和
double totalPrincipal = principal;
// 复利
double compoundInterest = principal * (1 + cycleRate);
// 总利息
double totalInterest = principal * cycleRate;

for (int i = 0; i < cycleCount - 1; i++)
{
// 累加本金
totalPrincipal += addFundsCycle;
// 加上本周期追加资金
compoundInterest += addFundsCycle;
// 累加每周期利息
totalInterest += compoundInterest * cycleRate;
// 计算本周期结束后复利
compoundInterest *= (1.0 + cycleRate);
}

StringBuilder sb = new StringBuilder();
sb.AppendFormat("本金共为 : {0:C2}", totalPrincipal);
sb.AppendLine();
sb.AppendFormat("利息共为 : {0:C2}", totalInterest);
sb.AppendLine();
sb.AppendFormat("产生复利为 : {0:C2}", compoundInterest);

this.txtResult.Text = sb.ToString();
}

程序编译环境 VS2010 + .NET 4 + WPF

源代码下载 

原文地址:https://www.cnblogs.com/ProJKY/p/2281148.html