I'm trying to show the balance and interest paid for each month. The balance should go down with each loop until balance is paid in full. The balance will go down but with the wrong amount I don't know how to put an loop in here that will say balance payed in full at the end of the code. The interest paid should go up with each loop , it goes up with the wrong amount

/*Write a Java program without a graphical user interface that calculates and displays

the mortgage payment amount given the amount of the mortgage, the term of the

mortgage, and the interest rate of the mortgage. In this program, hard code the

amount = $200,000, the term = 30 years, and the interest rate = 5.75%.

Insert comments in the program to document the program.*/

import java.text.*;

public class Mortgagepayment

{

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.getCurrencyInstance();

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

}

}

}