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 = length / 12 来得到 Monthly。你应该这样做:

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 回答