用复利计算总回报

时间:2010-09-06 01:55:50

标签: c++ math

所以,我试图计算出5英镑投资的总回报率,每日利率为1.01%。显然,我想要复利率,所以到目前为止我有这个:

int main() {

    double i = 500;
    int loop;
    int loopa;
    double lowInterest;
    double highInterest;

    lowInterest = 1.01;
    highInterest = 1.75;

    cout.precision(2);

        for(loop = 1;loop < 1826;loop++) {
            if(i<1001) {
                i = i + ((i / 100) * lowInterest);
            }
            else {
                i = i + ((i / 100) * highInterest);
            }
        }

    cout << fixed << i << endl;

    return 0;

}

我使用500代表5美元只是为了个人喜好。我这样做了吗?我得到了非常奇怪的结果 - 例如46592024576.00 - 这让我觉得某个地方我犯了错误?

有什么建议吗?

3 个答案:

答案 0 :(得分:5)

这个数字是正确的 - 如果你真的很幸运能够以1.01%的每日利率投资5美元,那么5年之后你将获得接近5亿美元的收益(每日利率1.01%是年利率~3800%。

您确定不是指(1.01 / 365)%的每日利率吗?

答案 1 :(得分:3)

我认为你正在手动做一个简单的方程式。

http://qrc.depaul.edu/StudyGuide2009/Notes/Savings%20Accounts/Compound%20Interest.htm

A = P(1 + r/n) ^ nt

在这种情况下

p = 5 (amount you invested)
r = 0.0101*365 (annual interest rate)
n = 365 (times compounded/yr)
t = 1  (number of years)

所以,只需实现等式。

我可能对r的价值不感兴趣,因为自从我使用工程经济学以来已经有好几年了,我看不出多少年,所以我猜到了。

答案 2 :(得分:1)

在切线上,你的计数器loop应该从0开始而不是1,否则它将循环1825次而不是1826次。