在java中没有math.pow计算复合兴趣

时间:2014-09-29 16:25:32

标签: java loops for-loop while-loop

我需要计算每月存款的储蓄账户的每月复利。我必须使用的变量:
  每月节省(例如,我每月存入125.75美元)
  (例如,我将其存放15个月)
   APR (年利率为5.65%)
现在我需要计算总储蓄金额,对于给定的数字,最终答案应该是1958.88美元 本质上,我正在使用A = P(1 + r / 12)^(12 * t),其中P是我存入的金额*月,r是APR,t是获得“的月数/ 12”多少年“

这里的问题是我不能使用math.pow()作为赋值的要求,所以我最好的猜测是我用类似于以下的for / while循环来计算它:

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);
}

上面的代码不是正确的解决方案,但它是最接近我的。问题是我每次积累的利息都会累积到总额之前。例如。它为15个存款增加了125.75 *的利息。它应该做的是从125.75 *利息开始然后加上125.75,然后取出你目前为止的总金额的利息,然后再加上125.75并再次获取总金额的利息,依此类推几个月。

这可能比我要做的要容易得多,但我已经尝试了几个小时添加不同的占位符变量,但我缺少一些关键概念,请帮忙!

2 个答案:

答案 0 :(得分:2)

月数循环

 for (int monthNumber = 0; monthNumber < numberOfMonths; monthNumber++)
 {
 }
然后每个月每个月添加兴趣,然后添加每月节省。按照这个顺序,你的另一种方式最终会对你刚存入的钱感兴趣,这是错误的。

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

你真的不需要保持一个月的数量,但我更喜欢循环。

答案 1 :(得分:0)

在重新阅读我的问题之后,我有了一个顿悟。正如我原先想的那样,答案比我想要的要容易得多。

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);
}