Calcul de l'intérêt composé sans mathématiques.pow en java


Je dois calculer l'intérêt composé mensuel dans un compte d'épargne qui reçoit un dépôt mensuel. Les variables avec lesquelles je dois travailler:
économies mensuelles ( par exemple. Je dépose 125,75 each chaque mois)
mois (par exemple. Je dépose le même pour 15 mois)
APR (l'intérêt annuel est de 5,65%)
Maintenant, je dois calculer le montant total des économies, qui pour les nombres donnés ici, la réponse finale devrait être $1958.88.
En substance, je travaille avec A = P(1 + r/12)^(12 * t), où P est le montant que je dépose * mois, r est le TAEG, et t est le mois / 12 pour obtenir le "combien d'années"

Le hic ici est que je ne peux pas utiliser les mathématiques.pow () comme exigence sur l'affectation, donc ma meilleure supposition est que je dois le calculer avec une boucle for/while similaire à ce qui suit:

public static void main(String[] args)
{
    double monthlySavings = 125.75;
    double APR = 5.65;
    int months = 15;
    int monthCount = 0;
    double totalSavings = 0;


    while (monthCount < months)  
    {
        totalSavings += monthlySavings + (1+APR/12/100);
        mothCount++;
    }

    System.out.printf("Your total savings will be $%.2f\n", totalSavings);
}

Le code ci-dessus n'est PAS la bonne solution, mais c'est le plus proche que je suis venu. Le problème est que j'applique l'intérêt aux économies mensuelles à chaque fois avant il s'accumule au total. par exemple. il ajoute 125.75 * intérêts pour 15 dépôts. Ce qu'il DEVRAIT faire, c'est commencer par 125,75*intérêts, puis ajouter 125,75, puis prendre l'intérêt du montant que vous avez total jusqu'à présent, puis ajouter 125,75 et reprendre l'intérêt du montant total, et ainsi de suite pour le nombre de mois.

C'est probablement beaucoup plus facile que je ne le pense, mais j'ai essayé pendant des heures d'ajouter différentes variables d'espace réservé, mais il me manque un concept crucial, s'il vous plait À l'aide!

Author: Justin Tennant, 2014-09-29

2 answers

Une boucle pour le nombre de mois

 for (int monthNumber = 0; monthNumber < numberOfMonths; monthNumber++)
 {
 }

Ensuite, pour chaque mois, ajoutez les intérêts puis ajoutez les économies mensuelles. Dans cet ordre, dans l'autre sens, vous vous retrouvez avec des intérêts sur l'argent que vous venez de déposer, ce qui est faux.

totalSavings *= (APR / 12 / 100); //Although I would have separate variable for this 
totalSavings += monthlySavings;

Vous n'avez pas vraiment besoin de compter un mois mais je préfère les boucles.

 2
Author: Ross Drew, 2014-09-30 08:40:18

Après avoir relu ma question, j'ai eu une épiphanie.. Comme je le pensais à l'origine, la réponse était beaucoup plus facile que je ne le pensais.

public static void main(String[] args)
{
    double monthlySavings = 125.75;
    double APR = 5.65;
    int months = 15;
    int monthCount = 0;
    double placeHolder = 0;
    double totalSavings = 0;


    while (monthCount < months)  
    {
        placeHolder += monthlySavings;
        totalSavings = placeHolder * (1+APR/12/100);
        placeHolder = totalSavings;
        monthCount++;
    }

System.out.printf("Your total savings will be $%.2f", totalSavings);
}
 0
Author: Justin Tennant, 2014-09-29 16:44:25