2012-11-19 80 views
1

我只是得到的利息金额不是我想支付一个月的金额,请你告诉我哪里错了谢谢。阅读计算错误与数学pow

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

}

+0

'rate = interest/100;'应该只出现一次。 –

+0

你不应该编辑你这样的问题,在一些答案已经发布后。否则,它可能看起来像答案没有意义了。 – dreamcrash

回答

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; 
+0

上午仍然得到一个错误,如果NTER贷款金额:5000 输入年利率:50 总付款方式:每年 输入贷款期限:1 您的月额是3750.00它假设是7500 –

+0

其假设是7500,因为我问用户想要借入的金额以及他们想要以50%的比率支付一次付款时的金额,假设为7500 –

+0

付款= 5000 +(1 + 0.5)^ 12 =这不是3750.00 .. – dreamcrash

1

应该

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

由于

A=P((1+rate/100)^n)