java把利率放在我的抵押贷款计算器上

时间:2018-10-04 01:32:52

标签: java

我编写了一个代码来计算每月抵押付款。这是我的代码的一部分->

public static void printAmortizationSchedule(double principal, double annualInterestRate,
    int numYears) {

        double interestPaid, principalPaid, newBalance;
        double monthlyInterestRate, monthlyPayment;
        int month;
        int numMonths = numYears * 12;

        monthlyInterestRate = annualInterestRate / 12;
        monthlyPayment      = monthlyPayment(principal, monthlyInterestRate, numYears);
        System.out.format("Your monthly Payment is: %8.2f%n", monthlyPayment);

        for (month = 1; month <= numMonths; month++) {
            // Compute amount paid and new balance for each payment period
            interestPaid  = principal      * (monthlyInterestRate / 100);
            principalPaid = monthlyPayment - interestPaid;
            newBalance    = principal      - principalPaid;

            // Update the balance
            principal = newBalance;

        }
    }

    static double monthlyPayment(double loanAmount, double monthlyInterestRate, int numberOfYears) {
        monthlyInterestRate /= 100;  
        return loanAmount * monthlyInterestRate /
        ( 1 - 1 / Math.pow(1 + monthlyInterestRate, numberOfYears * 12) );
    }

现在,我需要添加代码 1.本金必须为非负数。

  1. 抵押贷款付款将由以下金额之一决定:

•1年3.5% •2年3.9% •3年4.4% •5年5.0% •10年6.0%

我认为我需要使用do while语句或其他代码。但是,我很难找到放置位置。请帮帮我!

1 个答案:

答案 0 :(得分:1)

在两种情况下,您都需要处理一个条件:

  • 如果本金为负,则然后不执行计算,否则,继续进行计算。
  • 如果抵押期为n年,然后使用r利率。

因此,您将使用if-then-else构造。

对于本金,请尽早检查;仅将计算全部丢弃是没有意义的,因为它们是无效的。您可以抛出异常以指示无效输入,即负主体。

对于费率,您只需要确保在使用它之前选择正确的费率(使用if-then-else)即可。