Java Mortgage Calculator Problem...?

Problem: A program written in Java (without a graphical user interface) that will calculate and display the monthly payment amount to fully amortize a $200,000.00 loan over a 30 year term at 5.75‰ interest. The good news is the code is compiling without errors. The bad news is I am having difficulty getting the... show more Problem: A program written in Java (without a graphical user interface) that will calculate and display the monthly payment amount to fully amortize a $200,000.00 loan over a 30 year term at 5.75‰ interest.

The good news is the code is compiling without errors. The bad news is I am having difficulty getting the loan to fully amortize and display the payments as the loan principle decreases. Can someone please help?!?!?!? Here is the code I have so far:

import java.text.*;
public class mortgage
{
public static void main(String[] args)
{
//declaration statements
int length=30; // 30 year mortgage
double balance =200000.00; //amount borrowed
double rate=5.75;
double monthly_payment = 0.00;
double monthly_principal=0.00;
double monthly_interest = 0.00;
NumberFormat currency=NumberFormat.getCurrencyInstanc...
double y_rate = (rate /100/12);
double monthly_payments = balance * ( y_rate / (1 - Math.pow((1+y_rate),-1*(length*12) ) ));
y_rate = (rate/100)/12;
System.out.println("\t\tMortgage Payment Formula");
System.out.println("\t\tBalance own is $200,000");
System.out.println("\t\tYearly interest rate is 5.75%");
System.out.println("\t\tThe length of loan is 30 years\n");

// start of loop to calculate interest paid and balance owe
// print statement as balance increment,as interest increment
for (int mpi =1; mpi<=length*12; mpi++) { // months of payment being decrimented start counter
monthly_interest = (balance*y_rate);
balance = (balance - monthly_principal);
monthly_principal = (monthly_payment - monthly_interest);
System.out.println("Balance is $" + currency.format(balance));
System.out.println("Interest paid is $" + currency.format(monthly_interest));

try {Thread.sleep(10);} catch (InterruptedException e){}

}
}
}
3 answers 3