将年度利息转为每月

时间:2015-03-09 01:36:43

标签: java

问题在于,我需要将年度兴趣转化为月度。我的计划将以年度形式要求利率,并通过将月度利率与月度付款相结合来计算FV。例如,每年12%的复合使我每月的利率为~0.948%,只有我无法弄清楚如何将这个等式变成java代码。

这是我的整个代码,输入参数的输出是$ 3,829.95。这是正确的输出只有我必须通过手动找到它来找到这个利率,我的问题是,当采取年度利率并将其转换为每月相同的利率时,将其转换为代码的正确公式,我有尝试过Math.pow((1 + r / 12.0),12);代替乘数,我没有得到预期的结果。(我为无组织的代码道歉,我无处不在,因为我无法弄明白。)

import java.text.DecimalFormat;

public class It {
    static double Investment;
    static double months;
    static double multiplier = 1 + .009488792935; //This is what I need to change.
    public static void math(double Investment, double years )
        {
        It.Investment = Investment;
        It.months = years * 12;
        calculate();

        } 
    public static void calculate()
        {
        double amount = 0;
          for(int i = 0; i < months; i++)
          {
             amount = (amount + Investment) * multiplier;
          }
        DecimalFormat f = new DecimalFormat("$,###.00");
        System.out.println("Amount: " + f.format(amount));
        }

    public static void main(String[] args)
        {
        math(300, 1);

        }
    }

2 个答案:

答案 0 :(得分:2)

我修改了你的代码,但我不认为我应该在这里发布它b / c这可能是你的功课。我不应该带走你的学习机会。无论如何,首先,您创建了太多不必要的变量和类。使用您提供的代码,您可以在一个功能中完成。其次,你可能想用循环b / c这是你的作业要求。就个人而言,如果我只能通过一条线来做,我会避免循环。关于如何通过循环来做,我认为下面的答案为你提供了一个很好的公会线。

怎么做?

简单地说,在java中实现以下公式

年度复利计算公式:

FV =投资*(1 + r / n)^ nt其中r是您的利率,n是复合的时间,t是年份。

并将您的年利率预定为全局变量。

注意:您的结果有误。给予300美元的初始投资不应该在一年内产生3,829.95美元。这真是太好了。

答案 1 :(得分:1)

由于这是我提供课程的问题,因此计算每月利率所需要做的就是将年利率除以12。

因此,如果您的年利率为2.39%,则会转换为double rate = 0.0239;现在,要计算您的每月利率,您只需double monthlyRate = rate/12;

现在,让我们考虑当我们在余额上产生利息时会发生什么。首先,我们需要确定通过利息产生多少钱。我们采用当前余额并乘以每月费率(因为这是我们将要合作的)。 balance * monthlyRate

这只会产生一个小数字。如果我的monthRate为balance = 4000,请说0.0239 / 12,然后我会回来7.966666666667。我需要在月份之前将其添加到余额中(读取:循环)结束。所以balance = balance + 7.966666666667