Little Help with investment and interest rates

Discussion in 'C++' started by Prof. Krauf, Jul 9, 2009.

  1. Prof. Krauf

    Prof. Krauf New Member

    Joined:
    Jun 20, 2009
    Messages:
    20
    Likes Received:
    0
    Trophy Points:
    0
    Hi. I'm currently stuck here trying to figure out this code I'm trying to construct. I'm trying to write a function that computes future investment value at an interest rate given for a number of years.

    so far I've constructed this.

    Code:
    #include <iostream>
    using namespace std;
    int main()
    {
    double futureInvestmentValue (double investmentAmount,
          double monthlyInterestRate, int years);
    
    accumulatedValue =
    investmentAmount x (1 + monthlyInterestRate)
    
    
    
    
    
    system ("pause");
    return 0;
    }

    I believe I should have something that involves/looks like this?

    The amount invested: 1000
    Annual interest rate: 9%

    Years Future Value

    1 1093.8
    2 1196.41
    ...
    29 13467.25
    30 14730.57
     
  2. xpi0t0s

    xpi0t0s Mentor

    Joined:
    Aug 6, 2004
    Messages:
    3,009
    Likes Received:
    203
    Trophy Points:
    63
    Occupation:
    Senior Support Engineer
    Location:
    England
    Start by working out how you would do it with a calculator. Then just convert that into C code.
    If you can't do the second part, post how you would do it with a calculator and we can help you.
     
  3. Prof. Krauf

    Prof. Krauf New Member

    Joined:
    Jun 20, 2009
    Messages:
    20
    Likes Received:
    0
    Trophy Points:
    0
    Do you mean something like using the InvestAmount as say 1000 and multiply that by 1 and 0.09. That would come out to be 1001.09 right? Errr.
     
  4. Prof. Krauf

    Prof. Krauf New Member

    Joined:
    Jun 20, 2009
    Messages:
    20
    Likes Received:
    0
    Trophy Points:
    0
  5. xpi0t0s

    xpi0t0s Mentor

    Joined:
    Aug 6, 2004
    Messages:
    3,009
    Likes Received:
    203
    Trophy Points:
    63
    Occupation:
    Senior Support Engineer
    Location:
    England
    How are you going to calculate the interest? Will it be once a year just adding 9% of the balance? Will it be monthly (as you seem to refer to this at some point) and if monthly will that be 1/12 of 9%, or the 12th root of (1+9%) (the latter allows for compound interest which will work out at 9%pa, whereas the former will give you more than 9% over the year)?

    If it's just once a year adding 9% to the balance, then the calculation is just
    balance = balance * (1+annualInterestRate)

    so for example a balance of 1000 becomes 1000*(1+0.09) = 1090.

    But where did you get the following figures from, and how was 1093.8 calculated?
     
  6. Prof. Krauf

    Prof. Krauf New Member

    Joined:
    Jun 20, 2009
    Messages:
    20
    Likes Received:
    0
    Trophy Points:
    0
    Well I was just asking if it should look something like that.

    what should go in for the cout part?
     
  7. xpi0t0s

    xpi0t0s Mentor

    Joined:
    Aug 6, 2004
    Messages:
    3,009
    Likes Received:
    203
    Trophy Points:
    63
    Occupation:
    Senior Support Engineer
    Location:
    England
    Dunno. This is why I asked where you got those values from. 1093.8 obviously isn't 1000*(1+0.09) so that must have been derived by some other calculation.

    Just trying an educated guess in a calculator: 1000*(1+0.09/12)^12=1093.806898 -- that seems close; that's the interest rate divided by 12 and applied monthly as compound, thus leading to 9.38% interest rather than the stated 9% -- that may or may not be correct, which is why you need to check where you got 1093.8 from -- who gave you that number, or was it a number you worked out yourself?

    Why do you have a variable called monthlyInterestRate? If you're just calculating the value year on year at 9% per annum, you would use the annual rate directly. Or have you been told to calculate the value monthly?

    > Well I was just asking if it should look something like that.

    No, it'll be very different. You need to declare your variables, and you shouldn't be declaring futureInvestmentValue() as a private function.

    > what should go in for the cout part?

    Depends what you want to display. If you want to display
    1 1093.8
    2 1196.41
    then probably what you want will be something like:
    Code:
    cout << yearNumber << " " << accumulatedValue << endl;
    
    But you have quite a way to go before that.
     
  8. Prof. Krauf

    Prof. Krauf New Member

    Joined:
    Jun 20, 2009
    Messages:
    20
    Likes Received:
    0
    Trophy Points:
    0
    this maybe?

    Code:
    #include <iostream>
    using namespace std;
    
    double futureInvestmentValue ( double investmentAmount,
                                   double monthlyInterestRate,
                                    int years);
    
    int main()
    {
    
    
    
    
    
    
      system ("pause");
      return 0;
    }
    
    
    double futureInvestmentValue ( double investmentAmount,
                                   double monthlyInterestRate,
                                    int years)
    {
    
       // FV = PV ( 1 + i)ยช
    
       //   investmentAmount * (1 + monthlyInterestRate);
    
     
    
    }
     
  9. xpi0t0s

    xpi0t0s Mentor

    Joined:
    Aug 6, 2004
    Messages:
    3,009
    Likes Received:
    203
    Trophy Points:
    63
    Occupation:
    Senior Support Engineer
    Location:
    England
    No idea. I'm stuck until you answer my questions.
     
  10. Prof. Krauf

    Prof. Krauf New Member

    Joined:
    Jun 20, 2009
    Messages:
    20
    Likes Received:
    0
    Trophy Points:
    0
    I was given the number part from someone else, but I think I've got it. Annual result is what i need though adding in amounts from user.
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice