代码之家  ›  专栏  ›  技术社区  ›  Saladin Akara

用复利计算总收益

  •  1
  • Saladin Akara  · 技术社区  · 14 年前

    所以,我想算出一笔投资的总回报率是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 回复  |  直到 14 年前
        1
  •  5
  •   caf    14 年前

    如果你真的有幸一次投资5美元,这个数字大概是对的 每日的 利率为1.01%,5年后你将得到接近5亿美元(1.01%的日利率等于3800%的年利率)。

        2
  •  3
  •   James Black    14 年前

    我认为你是在手工做一个简单的方程式可以做的事情。

    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 因为我学工程经济学已经好几年了,我不知道学了多少年,所以我猜了一年。

        3
  •  1
  •   Rufflewind    14 年前

    切题地说,你的柜台 loop 应该从0而不是1开始,否则它将循环1825次而不是1826次。