1

私が月に支払うと思われる金額ではなく、利息の金額を取得しているだけです。どこが間違っているのか教えてください。

import java.util.Scanner;

/**
 *
 * @author 
 */
public static void main(String[] args) {
       Scanner input = new Scanner(System.in);
       //variabled decleared
       double rate;
       double payment;
       //input
       System.out.print("Enter Loan Amount:");
       double principal = input.nextDouble();
       System.out.print("Enter Annual Interest:");
       double interest = input.nextDouble();
       System.out.print("Total payment type:");
       String period = input.next();
       System.out.print("Enter Loan Length :");
       int length = input.nextInt();

       //proces
       rate = interest / 100;

       if (period.equals("monthly")) {
           double n = length * 12;
           payment = principal * (rate * Math.pow((1 + rate), n) / Math.pow((1 + rate), n));
          System.out.printf("Your Monthly Sum is %.2f",payment);
       }
}
4

2 に答える 2

2

あなたのエラーはここにあります:

principal * rate * Math.pow((1 + rate), n) / Math.pow((1 + rate), n)

これは、元本*レートのみを持つのと同じです。あなたはx=b * a/aと言っています。置換先:

 payment = principal * Math.pow((1 + rate), n);

nは年数であり、月次を取得するためにn=長さ/12を実行することはできません。代わりに行う必要があります:

payment = (principal * Math.pow((1 + rate), n)) / 12;
于 2012-11-19T14:50:36.177 に答える
1

そのはず

payment = principal * Math.pow((1 + rate), n);

として

A=P((1+rate/100)^n)
于 2012-11-19T14:50:26.900 に答える