DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   Java (http://www.daniweb.com/forums/forum9.html)
-   -   Type mismatch: Cannot convert from void to double (http://www.daniweb.com/forums/thread142453.html)

Tyster Aug 26th, 2008 6:24 pm
Type mismatch: Cannot convert from void to double
 
Hi Folks,

I'm a Java newbie so please forgive me if you've heard this one before...

Got a question for ya about an small app I am working on.

I have a banking app that creates accounts, then makes deposits and withdrawls to/from these accounts. Its very simple. I have a BankAccount class and in that class I have the following deposit method...



//Deposit method.
public void deposit(double dAmount) {

if(dAmount > 0) { // Check that deposit amount is more than zero dollars..
balance = balance + dAmount;} // Update balance with new balance.

else {JOptionPane.showMessageDialog( null, "Error: You must deposit more than 0 dollars.");}



The problem I am having is getting (retrieving) the new balance value in my tester class (with main()). I created the accounts using an ArrayList named 'accounts'. So to get the new balance I do...

//Deposits

for(int j = 0; j < totalAccounts; j++) {

String dep = JOptionPane.showInputDialog("How much would you like to deposit in this account?: ");
double deposit = Double.parseDouble(dep); //Convert string to double
double newBalance = accounts.get(j).deposit(deposit); //Call deposit method


The problem I am seeing is in the last line above. The line says go to index 'j' in the array and get the value after the deposit is made. In Eclipse the error I get is

"Type mismatch: Cannot convert from void to double."

Can anyone offer any suggestions? Should I return the balance in the deposit method instead of merely updating the balance?

I am having the same issue with the withdraw method but I suspect the solution will be the same for each. Any suggestions are greatly appreciated.

Many Thanks!

Tyster

dickersonka Aug 26th, 2008 6:42 pm
Re: Type mismatch: Cannot convert from void to double
 
Maintain the balance in a private variable inside deposit class.

you are trying to assign a double a value of void here
double newBalance = accounts.get(j).deposit(deposit);

when you withdraw or deposit, have that update a private variable of balance

private double balance = 0.0;

public double getBalance(){
  return balance;
}
public void withdraw(double d){
  //do your processing

//now set balance
balance = balance - d;
}


//in your other ui code call
double newBalance = accounts.get(j).getBalance();

Tyster Aug 26th, 2008 7:09 pm
Re: Type mismatch: Cannot convert from void to double
 
Many Thanks! I'll give that a try.

Tyster



Quote:

Originally Posted by dickersonka (Post 678682)
Maintain the balance in a private variable inside deposit class.

you are trying to assign a double a value of void here
double newBalance = accounts.get(j).deposit(deposit);

when you withdraw or deposit, have that update a private variable of balance

private double balance = 0.0;

public double getBalance(){
  return balance;
}
public void withdraw(double d){
  //do your processing

//now set balance
balance = balance - d;
}


//in your other ui code call
double newBalance = accounts.get(j).getBalance();



All times are GMT -4. The time now is 12:20 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC