每月付款计算器返回错误的付款
问题描述:
我想用一个给定的公式制作一个支付计算器的java。 我使用的公式是M = P * i/1-(1 + i)^ - n 其中P是贷款本金(即借入的金额) i是月利率(annual_interest_rate/12;表示为十进制) N是时间(贷款总年度中的每月支付数量;即年* 12) 下面的代码是我获取每月支付的函数。 如果我在6年的贷款额度200我得到140使用公式。 我难倒的,为什么我得到这个数字..任何帮助将不胜感激每月付款计算器返回错误的付款
public static int calMonthlyPay(double loanAmt, int y)
{
double m = 0.0, interest = 0.0, annualIRate = 0.0;
double months = 0.0;
months = y * 12;
annualIRate = getAnnualIRate(y);
interest = annualIRate/12;
System.out.println(interest);
System.out.println(months);
System.out.println(loanAmt);
System.out.println(y);
m = (loanAmt * (interest - Math.pow((1 + interest), -months)));
System.out.println(m);
return 0;
}
private static double getAnnualIRate(int y)
{
switch (y) {
case 2:
return 5.7;
case 3:
return 6.2;
case 4:
return 6.8;
case 5:
return 7.5;
case 6:
return 8.4;
default:
return 8.4;
}
}
答
你现在有什么是:
m = (loanAmt * (interest/1 - Math.pow((1 + interest), -months))) =
(loanAmt * (interest - Math.pow((1 + interest), -months)))
您应该正确使用括号:
m = loanAmt * (interest/(1 - Math.pow(1 + interest, -months)));
答
如果我理解你的配方,它应该是:
m = loanAmt * interest - Math.pow(1 + interest, -months);
你为什么除以1? 'P * i/1' – Aradmey 2015-02-10 20:05:25