Monday, 14 November 2016

java - Monthly payment calculator returning wrong payment

I am supposed to make a monthly payment calculator in java with the given formula.
The formula for me to use is





M = P * i/ 1 - (1+i)^-n




where




  • P is the loan principal (i.e. the amount borrowed)

  • i is monthly interest rate (annual_interest_rate / 12; expressed as decimal)

  • N is time (number of monthly payments in total years of loan; i.e. years * 12)




The code below is my attempted function to get the monthly payment.



But if I put in 6 years with a loan amount of 200, I get 140 using the formula.
I am stumped as to why I get that number. Any help would be appreciated



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))); // This is my formula calculation

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

}

No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...