假设我投资1000欧元,预计一年内收益+10%,因此为1100欧元。每个月的收入是91.667,我每个月都会再次投资,再加上91.667的10%,额外的利息。
以下算法正确吗?
totalMoney=1100;
moneyPerMonth=0;
for i=1:12
moneyPerMonth=(moneyPerMonth+totalMoney)/12
totalMoney=totalMoney+moneyPerMonth/12
end
我得到以下结果:
moneyPerMonth = 91.667
totalMoney = 1107.6
moneyPerMonth = 99.942
totalMoney = 1116.0
moneyPerMonth = 101.33
totalMoney = 1124.4
moneyPerMonth = 102.14
totalMoney = 1132.9
moneyPerMonth = 102.92
totalMoney = 1141.5
moneyPerMonth = 103.70
totalMoney = 1150.1
moneyPerMonth = 104.49
totalMoney = 1158.8
moneyPerMonth = 105.28
totalMoney = 1167.6
moneyPerMonth = 106.08
totalMoney = 1176.5
moneyPerMonth = 106.88
totalMoney = 1185.4
moneyPerMonth = 107.69
totalMoney = 1194.3
moneyPerMonth = 108.50
totalMoney = 1203.4
这意味着我发现我的收入从+10%增加到20034%,总收入为1203.4。
这是正确的吗?
有两件事:首先,你不清楚你关于复利的问题——如果10%的数字每年复利,那么到年底你确实会有1100,但你的月利率不会是0.1/12
或0.008333
。如果你用这个数字进行月度计算,你将按月复利,这将导致有效年利率为10.471%
,而不是10%。要获得10%的有效年利率,您的月利率仅为0.007974
。
一旦你决定要使用哪一个,剩下的就相当简单了。例如,使用python:
annual = 0.007974 #the code below uses this rate, but you can easily change it to "monthly"
monthly = 0.008333
months = 12
investment = 1000
balance = investment
print('after month',"taccrued int","tbalance",)
for m in range(months):
interest = balance*annual
balance+=interest
print(m+1, 'tt',format(interest,".2f"), 'tt',format(balance,".2f"))
输出:
after month accrued int balance
1 7.97 1007.97
2 8.04 1016.01
3 8.10 1024.11
4 8.17 1032.28
5 8.23 1040.51
6 8.30 1048.81
7 8.36 1057.17
8 8.43 1065.60
9 8.50 1074.10
10 8.56 1082.66
11 8.63 1091.30
12 8.70 1100.00