DeeDee2309
asked on
Looping the balance and interest of 3 loans
I have seen a few of these mortgage program questions on here, but I can see any that answer my question. I have most of it figured out, but I am trying to get the 3 mortgages to loop to show the balance and interest of each one separately through the life of the loan. Please help, I am having a heck of a time with the multidimentional arrays.
/* Modify the mortgage program to display 3 mortgage loans: 7 year at 5.35%, 15 year at 5.5 %, and 30 year at 5.75%. Use an array for the different loans. Display the mortgage payment amount for each loan. Then, list the loan balance and interest paid for each payment over the term of the loan. Use loops to prevent lists from scrolling off the screen. Do not use a graphical user interface. Insert comments in the program to document the program.
*/
import java.text.DecimalFormat;
class Thursday { //class name
public static void main(String arguments[]) {
DecimalFormat currency = new DecimalFormat(",000.00");/ /two decimal format and comma for 1,000's.
double mortgaged = 200000;//Original amount of loan
int loan = 0;
System.out.println("Mortga ge Calculator");//Title
System.out.println(" ");
System.out.println("Amount Borrowed\t\t" + "Payment \t" + "Interest Rate\t" + "Years\t" ); //Header for schedule
do{ //do/while loop begins
double [][] loans = {
{7, .0535}, {15, .0550}, {30, .0575},}; // Array
double term = loans [loan] [0];//Number of months for mortgage
double interestRate =loans [loan] [1];
double months = term*12;//total months for the loan
double monthlyRate = interestRate/12;//multipli er for monthly interest
double payment = mortgaged*monthlyRate/(1-( Math.pow(1 /(1+monthl yRate),mon ths)));// Used for payment amount
int paymentNum = 1;
double balance = mortgaged;
double principal = 0;
double newBalance = 0;
double newMonthlyRate =0;
int lineNum=0;
//Output of information under Heading
System.out.println("$" + currency.format(mortgaged) + "\t\t$" + currency.format(payment) + "\t" + (interestRate*100)+ " %" + "\t\t"+ term);
loan++;
}//end do/while loop
while (loan<=2);
System.out.println("------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- -");
System.out.println ("\t\t\tBalances and Interest");
System.out.println("------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---");
System.out.println("\t\t7Y r, 5.35%\t\t" + "15Yr, 5.5% \t\t" + "30Yr, 5.75%");
System.out.println("Number \t "+"Balance\t"+"Interest\t" +"Balance\ t"+"Intere st\t"+"Bal ance\t"+"I nterest" );
// Everything is good to this point. Below here is where things get messed up.
while(paymentNum<=30){ //This is where I need my loop that displays the 3 mortgage balances and the interest paid for the life of the loans
Pause(3000);
for (int lineNum=1;paymentNum<=360 && lineNum<=30;lineNum++)
{
newMonthlyRate=balance+mon thlyRate;
principal=payment-newMonth lyRate;
newBalance=balance-princip al;
balance=newBalance;
System.out.println(" " + paymentNum + "\t$" + currency.format(newBalance [0][0][0][ 1]) + "\t$" +currency.format(newMonthl yRate[0][0 ][0][1]) + "\t$" + currency.format(newBalance [1][0][1][ 1]) + "\t$" + currency.format(newMonthly Rate[1][0] [1][1]) + "\t$" + currency.format(newBalance [2][0][2][ 1]) + "\t$" +currency.format(newMonthl yRate[2][0 ][2][1]));
paymentNum++;}
}
//above this line is where things are messed up
}
static void Pause(long Milliseconds){
try{
Thread.currentThread().sle ep(Millise conds);
}
catch (InterruptedException e){
e.printStackTrace();
}
}
}//end class
/* Modify the mortgage program to display 3 mortgage loans: 7 year at 5.35%, 15 year at 5.5 %, and 30 year at 5.75%. Use an array for the different loans. Display the mortgage payment amount for each loan. Then, list the loan balance and interest paid for each payment over the term of the loan. Use loops to prevent lists from scrolling off the screen. Do not use a graphical user interface. Insert comments in the program to document the program.
*/
import java.text.DecimalFormat;
class Thursday { //class name
public static void main(String arguments[]) {
DecimalFormat currency = new DecimalFormat(",000.00");/
double mortgaged = 200000;//Original amount of loan
int loan = 0;
System.out.println("Mortga
System.out.println(" ");
System.out.println("Amount
do{ //do/while loop begins
double [][] loans = {
{7, .0535}, {15, .0550}, {30, .0575},}; // Array
double term = loans [loan] [0];//Number of months for mortgage
double interestRate =loans [loan] [1];
double months = term*12;//total months for the loan
double monthlyRate = interestRate/12;//multipli
double payment = mortgaged*monthlyRate/(1-(
int paymentNum = 1;
double balance = mortgaged;
double principal = 0;
double newBalance = 0;
double newMonthlyRate =0;
int lineNum=0;
//Output of information under Heading
System.out.println("$" + currency.format(mortgaged)
loan++;
}//end do/while loop
while (loan<=2);
System.out.println("------
System.out.println ("\t\t\tBalances and Interest");
System.out.println("------
System.out.println("\t\t7Y
System.out.println("Number
// Everything is good to this point. Below here is where things get messed up.
while(paymentNum<=30){ //This is where I need my loop that displays the 3 mortgage balances and the interest paid for the life of the loans
Pause(3000);
for (int lineNum=1;paymentNum<=360 && lineNum<=30;lineNum++)
{
newMonthlyRate=balance+mon
principal=payment-newMonth
newBalance=balance-princip
balance=newBalance;
System.out.println(" " + paymentNum + "\t$" + currency.format(newBalance
paymentNum++;}
}
//above this line is where things are messed up
}
static void Pause(long Milliseconds){
try{
Thread.currentThread().sle
}
catch (InterruptedException e){
e.printStackTrace();
}
}
}//end class
Are you getting any errors? At first glance the logic *seems* correct.
Cna you try this and tell me if this is what you are looking for?
import java.text.DecimalFormat;
class Thursday { //class name
public static void main(String arguments[])
{
DecimalFormat currency = new DecimalFormat(",000.00");/ /two decimal format and comma for 1,000's.
double mortgaged = 200000;//Original amount of loan
int loan = 0;
System.out.println("Mortga ge Calculator");//Title
System.out.println(" ");
System.out.println("Amount Borrowed\t\t" + "Payment \t" + "Interest Rate\t" + "Years\t" ); //Header for schedule
double [][] loans = {{7, .0535}, {15, .0550}, {30, .0575},}; // Array
double term = loans [loan] [0];//Number of months for mortgage
double interestRate;// =loans [loan] [1];
double months;// = term*12;//total months for the loan
double monthlyRate; // = interestRate/12;//multipli er for monthly interest
double payment;// = mortgaged*monthlyRate/(1-( Math.pow(1 /(1+monthl yRate),mon ths)));// Used for payment amount
int paymentNum = 1;
double balance;// = mortgaged;
double principal = 0;
double newBalance = 0;
double newMonthlyRate =0;
int lineNum=0;
do
{ //do/while loop begins
interestRate =loans [loan] [1];
months = term*12;//total months for the loan
monthlyRate = interestRate/12;//multipli er for monthly interest
payment = mortgaged*monthlyRate/(1-( Math.pow(1 /(1+monthl yRate),mon ths)));// Used for payment amount
balance = mortgaged;
//Output of information under Heading
System.out.println("$" + currency.format(mortgaged) + "\t\t$" + currency.format(payment) + "\t" + (interestRate*100)+ " %" + "\t\t"+ term);
loan++;
}//end do/while loop
while (loan<=2);
System.out.println("------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- -");
System.out.println ("\t\t\tBalances and Interest");
System.out.println("------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---");
System.out.println("\t\t7Y r, 5.35%\t\t" + "15Yr, 5.5% \t\t" + "30Yr, 5.75%");
System.out.println("Number \t "+"Balance\t"+"Interest\t" +"Balance\ t"+"Intere st\t"+"Bal ance\t"+"I nterest" );
// Everything is good to this point. Below here is where things get messed up.
while(paymentNum<=30)
{ //This is where I need my loop that displays the 3 mortgage balances and the interest paid for the life of the loans
Pause(3000);
for (lineNum=1;paymentNum<=360 && lineNum<=30;lineNum++)
{
newMonthlyRate=balance+mon thlyRate;
principal=payment-newMonth lyRate;
newBalance=balance-princip al;
balance=newBalance;
//System.out.println(" " + paymentNum + "\t$" + currency.format(newBalance [0][0][0][ 1]) + "\t$" +currency.format(newMonthl yRate[0][0 ][0][1]) + "\t$" + currency.format(newBalance [1][0][1][ 1]) + "\t$" + currency.format(newMonthly Rate[1][0] [1][1]) + "\t$" + currency.format(newBalance [2][0][2][ 1]) + "\t$" +currency.format(newMonthl yRate[2][0 ][2][1]));
System.out.println(" " + paymentNum + "\t$" + currency.format(newBalance ) + "\t$" +currency.format(newMonthl yRate) + "\t$" + currency.format(newBalance ) + "\t$" + currency.format(newMonthly Rate) + "\t$" + currency.format(newBalance ) + "\t$" +currency.format(newMonthl yRate));
paymentNum++;
}
}
//above this line is where things are messed up
}
static void Pause(long Milliseconds){
try{
Thread.currentThread().sle ep(Millise conds);
}
catch (InterruptedException e){
e.printStackTrace();
}
}
}//end class
import java.text.DecimalFormat;
class Thursday { //class name
public static void main(String arguments[])
{
DecimalFormat currency = new DecimalFormat(",000.00");/
double mortgaged = 200000;//Original amount of loan
int loan = 0;
System.out.println("Mortga
System.out.println(" ");
System.out.println("Amount
double [][] loans = {{7, .0535}, {15, .0550}, {30, .0575},}; // Array
double term = loans [loan] [0];//Number of months for mortgage
double interestRate;// =loans [loan] [1];
double months;// = term*12;//total months for the loan
double monthlyRate; // = interestRate/12;//multipli
double payment;// = mortgaged*monthlyRate/(1-(
int paymentNum = 1;
double balance;// = mortgaged;
double principal = 0;
double newBalance = 0;
double newMonthlyRate =0;
int lineNum=0;
do
{ //do/while loop begins
interestRate =loans [loan] [1];
months = term*12;//total months for the loan
monthlyRate = interestRate/12;//multipli
payment = mortgaged*monthlyRate/(1-(
balance = mortgaged;
//Output of information under Heading
System.out.println("$" + currency.format(mortgaged)
loan++;
}//end do/while loop
while (loan<=2);
System.out.println("------
System.out.println ("\t\t\tBalances and Interest");
System.out.println("------
System.out.println("\t\t7Y
System.out.println("Number
// Everything is good to this point. Below here is where things get messed up.
while(paymentNum<=30)
{ //This is where I need my loop that displays the 3 mortgage balances and the interest paid for the life of the loans
Pause(3000);
for (lineNum=1;paymentNum<=360
{
newMonthlyRate=balance+mon
principal=payment-newMonth
newBalance=balance-princip
balance=newBalance;
//System.out.println(" " + paymentNum + "\t$" + currency.format(newBalance
System.out.println(" " + paymentNum + "\t$" + currency.format(newBalance
paymentNum++;
}
}
//above this line is where things are messed up
}
static void Pause(long Milliseconds){
try{
Thread.currentThread().sle
}
catch (InterruptedException e){
e.printStackTrace();
}
}
}//end class
ASKER
Well, that is definitely closer than what I had. I have to try to get up to 360 payments plus monthly interest paid for the 30 year loan, 180 payments plus monthly interest paid for the 15 year loan and 84 payments plus interest paid for the 7 year loan. I see what you did here, but the total for the intest paid is about $211,636,880,508,200.62, and they are all based on a 7 years mortgage, how can I scale that down? I am just trying to rationalize everything. Thanks so much!!
ASKER
Below is an example of what I am trying to get the above program to do. This one I made last week. I am trying to get the 3 separate loans to do the same thing through the array.
import java.text.DecimalFormat;
class Sunday
{ //class name
public static void main(String arguments[])
{
DecimalFormat currency = new DecimalFormat(",000.00");/ /two decimal format
int term = 360; //360 months for total loan 30 * 12
double interestRate = 5.75/100; //5.75% interest rate
double mortgaged = 200000; // $200,000 Loan
double monthlyRate = (interestRate/12);//divide d my one year
double discountFactor =discountFactor=(Math.pow( (1 + monthlyRate), term) -1) / (monthlyRate * Math.pow((1 + monthlyRate), term));// factor to use for amortization;
double payment = mortgaged / discountFactor;
int month=0;
int paymentNum=1;
double balance = mortgaged;
double principal=0;
double newBalance=0;
double newMonthlyRate = 0;
double newPrincipal =0;
//output on screen
System.out.println("Mortga ge Program");
System.out.println("Based on a $" + mortgaged + " mortgage.");
System.out.println("At " + interestRate*100 + " interest");
System.out.println("For " + term/12 + " years");
System.out.println("Your total Monthly payment is :$" +currency.format(payment)) ;
System.out.println( "Number \t" + " Interest\t" + "Ending Balance");
while (paymentNum<=360){
Pause(2500);
for (int lineNumb=1;paymentNum<=360 && lineNumb<=30;lineNumb++)
{
newMonthlyRate = balance*monthlyRate;
principal = payment-newMonthlyRate;
newBalance = balance-principal;
balance = newBalance;
System.out.println(" " + paymentNum + "\t$ " + currency.format(newMonthly Rate) + "\t$ " + currency.format(newBalance ));
paymentNum++;
}
}
}
static void Pause(long Milliseconds) {
try {
Thread.currentThread().sle ep(Millise conds);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}//end class
import java.text.DecimalFormat;
class Sunday
{ //class name
public static void main(String arguments[])
{
DecimalFormat currency = new DecimalFormat(",000.00");/
int term = 360; //360 months for total loan 30 * 12
double interestRate = 5.75/100; //5.75% interest rate
double mortgaged = 200000; // $200,000 Loan
double monthlyRate = (interestRate/12);//divide
double discountFactor =discountFactor=(Math.pow(
double payment = mortgaged / discountFactor;
int month=0;
int paymentNum=1;
double balance = mortgaged;
double principal=0;
double newBalance=0;
double newMonthlyRate = 0;
double newPrincipal =0;
//output on screen
System.out.println("Mortga
System.out.println("Based on a $" + mortgaged + " mortgage.");
System.out.println("At " + interestRate*100 + " interest");
System.out.println("For " + term/12 + " years");
System.out.println("Your total Monthly payment is :$" +currency.format(payment))
System.out.println( "Number \t" + " Interest\t" + "Ending Balance");
while (paymentNum<=360){
Pause(2500);
for (int lineNumb=1;paymentNum<=360
{
newMonthlyRate = balance*monthlyRate;
principal = payment-newMonthlyRate;
newBalance = balance-principal;
balance = newBalance;
System.out.println(" " + paymentNum + "\t$ " + currency.format(newMonthly
paymentNum++;
}
}
}
static void Pause(long Milliseconds) {
try {
Thread.currentThread().sle
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}//end class
Cam you try this and tell me if this is what you are looking for:
import java.text.DecimalFormat;
class Sunday
{ //class name
public static void main(String arguments[])
{
double [] loans = {.0535, .0550, .0575}; // Array
DecimalFormat currency = new DecimalFormat(",000.00");/ /two decimal format
int term = 0;// = 360; //360 months for total loan 30 * 12
double interestRate = 0.0;// = 5.75/100; //5.75% interest rate
double mortgaged = 200000; // $200,000 Loan
double monthlyRate = 0.0;// = (interestRate/12);//divide d my one year
double discountFactor = 0.0;// = (Math.pow((1 + monthlyRate), term) -1) / (monthlyRate * Math.pow((1 + monthlyRate), term));// factor to use for amortization;
double payment = 0.0;// = mortgaged / discountFactor;
/*
int month=0;
int paymentNum=1;
double balance = mortgaged;
double principal=0;
double newBalance=0;
double newMonthlyRate = 0;
double newPrincipal =0;
*/
//output on screen
/*
System.out.println("Mortga ge Program");
System.out.println("Based on a $" + mortgaged + " mortgage.");
System.out.println("At " + interestRate*100 + " interest");
System.out.println("For " + term/12 + " years");
System.out.println("Your total Monthly payment is :$" +currency.format(payment)) ;
*/
System.out.println( "Number \t" + " Interest\t" + "Ending Balance");
for (int i=0; i<3; i++)
{
term = i == 0 ? 84 : (i == 1 ? 150 : 360);
System.out.println("term: " + term);
interestRate = loans[i];
System.out.println("intere stRate : " + interestRate);
monthlyRate = interestRate / 12;
System.out.println("monthl yRate : " + monthlyRate);
discountFactor = (Math.pow((1 + monthlyRate), term) -1) / (monthlyRate * Math.pow((1 + monthlyRate), term));
System.out.println("discou ntFactor : " + discountFactor);
payment = mortgaged / discountFactor;
System.out.println("Mortga ge Program");
System.out.println("Based on a $" + mortgaged + " mortgage.");
System.out.println("At " + interestRate*100 + " interest");
System.out.println("For " + term/12 + " years");
System.out.println("Your total Monthly payment is :$" + currency.format(payment));
int month=0;
int paymentNum=1;
double balance = mortgaged;
double principal=0;
double newBalance=0;
double newMonthlyRate = 0;
double newPrincipal =0;
while (paymentNum<term)
{
Pause(2000);
for (int lineNumb=1;paymentNum<=ter m && lineNumb<=30;lineNumb++)
{
newMonthlyRate = balance*monthlyRate;
principal = payment-newMonthlyRate;
newBalance = balance-principal;
balance = newBalance;
System.out.println(" " + paymentNum + "\t$ " + currency.format(newMonthly Rate) + "\t$ " + currency.format(newBalance ));
paymentNum++;
}
} // while
} // for
}
static void Pause(long Milliseconds)
{
try
{
Thread.currentThread().sle ep(Millise conds);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}//end class
If you need any clarification please ask.
import java.text.DecimalFormat;
class Sunday
{ //class name
public static void main(String arguments[])
{
double [] loans = {.0535, .0550, .0575}; // Array
DecimalFormat currency = new DecimalFormat(",000.00");/
int term = 0;// = 360; //360 months for total loan 30 * 12
double interestRate = 0.0;// = 5.75/100; //5.75% interest rate
double mortgaged = 200000; // $200,000 Loan
double monthlyRate = 0.0;// = (interestRate/12);//divide
double discountFactor = 0.0;// = (Math.pow((1 + monthlyRate), term) -1) / (monthlyRate * Math.pow((1 + monthlyRate), term));// factor to use for amortization;
double payment = 0.0;// = mortgaged / discountFactor;
/*
int month=0;
int paymentNum=1;
double balance = mortgaged;
double principal=0;
double newBalance=0;
double newMonthlyRate = 0;
double newPrincipal =0;
*/
//output on screen
/*
System.out.println("Mortga
System.out.println("Based on a $" + mortgaged + " mortgage.");
System.out.println("At " + interestRate*100 + " interest");
System.out.println("For " + term/12 + " years");
System.out.println("Your total Monthly payment is :$" +currency.format(payment))
*/
System.out.println( "Number \t" + " Interest\t" + "Ending Balance");
for (int i=0; i<3; i++)
{
term = i == 0 ? 84 : (i == 1 ? 150 : 360);
System.out.println("term: " + term);
interestRate = loans[i];
System.out.println("intere
monthlyRate = interestRate / 12;
System.out.println("monthl
discountFactor = (Math.pow((1 + monthlyRate), term) -1) / (monthlyRate * Math.pow((1 + monthlyRate), term));
System.out.println("discou
payment = mortgaged / discountFactor;
System.out.println("Mortga
System.out.println("Based on a $" + mortgaged + " mortgage.");
System.out.println("At " + interestRate*100 + " interest");
System.out.println("For " + term/12 + " years");
System.out.println("Your total Monthly payment is :$" + currency.format(payment));
int month=0;
int paymentNum=1;
double balance = mortgaged;
double principal=0;
double newBalance=0;
double newMonthlyRate = 0;
double newPrincipal =0;
while (paymentNum<term)
{
Pause(2000);
for (int lineNumb=1;paymentNum<=ter
{
newMonthlyRate = balance*monthlyRate;
principal = payment-newMonthlyRate;
newBalance = balance-principal;
balance = newBalance;
System.out.println(" " + paymentNum + "\t$ " + currency.format(newMonthly
paymentNum++;
}
} // while
} // for
}
static void Pause(long Milliseconds)
{
try
{
Thread.currentThread().sle
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}//end class
If you need any clarification please ask.
ASKER
yes, that is what I am looking for, but it has to be incorporated into the one you had previously helped me with. The multidimentional array, as in:
double term = loans [loan] [0];//Number of months for mortgage
double interestRate;// =loans [loan] [1];
double months;// = term*12;//total months for the loan
Now, if I can only figure out what you did.
double term = loans [loan] [0];//Number of months for mortgage
double interestRate;// =loans [loan] [1];
double months;// = term*12;//total months for the loan
Now, if I can only figure out what you did.
All the functionallity you want is inside the for loop where I use the variables you defined. On each looping I reassign the values to the variables using the new interest rate for the year period. Then based on the terms value I iterate.
Try to replace your while loop in the first programme with the whole for loop in my last programme. It should have worked, otherwise try to step through my code and see what I am doing. If you still need help ask again :)
Try to replace your while loop in the first programme with the whole for loop in my last programme. It should have worked, otherwise try to step through my code and see what I am doing. If you still need help ask again :)
ASKER
Wow, that is excellent. I added the for loop inside of my original array program and got the folloing error.
-------------------------- ---------- ---------- ---------- ---
"C:\j2sdk1.4.2_05\bin\java c.exe" Thursday.java
Thursday.java:35: incompatible types
found : double[]
required: double
interestRate = loans[i];
^
1 error
Terminated with exit code 1
-------------------------- ---------- ---------- ---------- -----
Below, I have attached my program. How do I change that to make it run like that program you just showed me? You don't know how much I appreciate this!!
import java.text.DecimalFormat;
class Thursday { //class name
public static void main(String arguments[]) {
DecimalFormat currency = new DecimalFormat(",000.00");/ /two decimal format and comma for 1,000's.
double [][] loans = {
{84, .0535}, {180, .0550}, {360, .0575},}; // Array
double mortgaged = 200000;//Original amount of loan
int term = 0;
double interestRate = 0.0;
double monthlyRate = 0.0;
double discountFactor = 0.0;
double payment = 0.0;
System.out.println("Number \t" + "Interest \t" + "Ending Balance");
for (int i=0; i<3; i++)
{
term = i == 0 ? 84 : (i == 1 ? 180 : 360);
System.out.println("term: " + term);
interestRate = loans[i];
System.out.println("intere stRate : " + interestRate* 100);
monthlyRate = interestRate / 12;
System.out.println("monthl yRate : " + monthlyRate);
discountFactor = (Math.pow((1 + monthlyRate), term) -1) / (monthlyRate * Math.pow((1 + monthlyRate), term));
System.out.println("discou ntFactor : " + discountFactor);
payment = mortgaged / discountFactor;
System.out.println("Mortga ge Program");
System.out.println("Based on a $" + mortgaged + " mortgage.");
System.out.println("At " + interestRate*100 + " interest");
System.out.println("For " + term/12 + " years");
System.out.println("Your total Monthly payment is :$" + currency.format(payment));
int month=0;
int paymentNum=1;
double balance = mortgaged;
double principal=0;
double newBalance=0;
double newMonthlyRate = 0;
double newPrincipal =0;
while (paymentNum<term)
{
Pause(3000);
for (int lineNumb=1;paymentNum<=ter m && lineNumb<=30;lineNumb++)
{
newMonthlyRate = balance*monthlyRate;
principal = payment-newMonthlyRate;
newBalance = balance-principal;
balance = newBalance;
System.out.println(" " + paymentNum + "\t$ " + currency.format(newMonthly Rate) + "\t$ " + currency.format(newBalance ));
paymentNum++;
}
} // while
} // for
}
static void Pause(long Milliseconds)
{
try
{
Thread.currentThread().sle ep(Millise conds);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}//end class
--------------------------
"C:\j2sdk1.4.2_05\bin\java
Thursday.java:35: incompatible types
found : double[]
required: double
interestRate = loans[i];
^
1 error
Terminated with exit code 1
--------------------------
Below, I have attached my program. How do I change that to make it run like that program you just showed me? You don't know how much I appreciate this!!
import java.text.DecimalFormat;
class Thursday { //class name
public static void main(String arguments[]) {
DecimalFormat currency = new DecimalFormat(",000.00");/
double [][] loans = {
{84, .0535}, {180, .0550}, {360, .0575},}; // Array
double mortgaged = 200000;//Original amount of loan
int term = 0;
double interestRate = 0.0;
double monthlyRate = 0.0;
double discountFactor = 0.0;
double payment = 0.0;
System.out.println("Number
for (int i=0; i<3; i++)
{
term = i == 0 ? 84 : (i == 1 ? 180 : 360);
System.out.println("term: " + term);
interestRate = loans[i];
System.out.println("intere
monthlyRate = interestRate / 12;
System.out.println("monthl
discountFactor = (Math.pow((1 + monthlyRate), term) -1) / (monthlyRate * Math.pow((1 + monthlyRate), term));
System.out.println("discou
payment = mortgaged / discountFactor;
System.out.println("Mortga
System.out.println("Based on a $" + mortgaged + " mortgage.");
System.out.println("At " + interestRate*100 + " interest");
System.out.println("For " + term/12 + " years");
System.out.println("Your total Monthly payment is :$" + currency.format(payment));
int month=0;
int paymentNum=1;
double balance = mortgaged;
double principal=0;
double newBalance=0;
double newMonthlyRate = 0;
double newPrincipal =0;
while (paymentNum<term)
{
Pause(3000);
for (int lineNumb=1;paymentNum<=ter
{
newMonthlyRate = balance*monthlyRate;
principal = payment-newMonthlyRate;
newBalance = balance-principal;
balance = newBalance;
System.out.println(" " + paymentNum + "\t$ " + currency.format(newMonthly
paymentNum++;
}
} // while
} // for
}
static void Pause(long Milliseconds)
{
try
{
Thread.currentThread().sle
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}//end class
Also change your loans array to this:
double [] loans = {.0535, .0550, .0575}; // Array
double [] loans = {.0535, .0550, .0575}; // Array
ASKER
Um, that's what I'm trying to say, it has to look like this:
double [][] loans = {
{84, .0535}, {180, .0550}, {360, .0575},}; // Array
That is what is required, then it has to loop. That loop you made is absolutley fabulous. That is what I am trying to get to with the above array.
double [][] loans = {
{84, .0535}, {180, .0550}, {360, .0575},}; // Array
That is what is required, then it has to loop. That loop you made is absolutley fabulous. That is what I am trying to get to with the above array.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
PERFECT!! Now, how do I give you your points? I cannot thank you enough for your help, if there is any way I can give you more points, please let me know, it was well worth it.
Just accept the answer, there should be a button next to each comment, accept the one comment that you feel has helped you the most. As for additional points, it's fine, I am not here for the points :)
If you need any clarification or there is code that you do not undesrtand let me know :)
If you need any clarification or there is code that you do not undesrtand let me know :)
ASKER