Ajuda sobre um erro de um exemplo Deitel

6 respostas
userguj

Galera no livro do Deitel, Java como Programar 6º, tem um exemplo no capitulo 3 sobre uma conta bancaria.
Então conforme está no livro digitei code aqui e executei, so que quando digito um valor ([color=blue]Double[/color]) para ser "depositado" está dando o seguinte erro em tempo de execução:

Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Unknown Source) at java.util.Scanner.next(Unknown Source) at java.util.Scanner.nextDouble(Unknown Source) at AccountTest.main(AccountTest.java:24)

Classe Account.java

public class Account
{
	private double balance; // variável de instância que armazena o saldo
	
	// construtor
	public Account (double initialBalance)
	{
		// valida que initialBalance é maior que 0.0
		// se não, o saldo é inicializado com o valor padrão 0.0
		if (initialBalance > 0.0)
			balance = initialBalance;
	} // fim do construtor Account
	
	// credita (adiciona) um quantia à conta
	public void credit (double amount)
	{
		balance = balance + amount; // adiciona quantia ao saldo
	} // fim do método credit
	
	// retorna o saldo da conta
	public double getBalance()
	{
		return balance; // fornece o valor de saldo ao método chamador
	} // fim do método getBalance
	
} // fim da classe Account

E a classe AccountTest.java, para testar a classe Account:

import java.util.Scanner;

public class AccountTest
{
	// método principal inicia a execução do aplicativo Java
	public static void main (String args [])
	{
		Account account1 = new Account (50.00); // cria o objeto Account
		Account account2 = new Account (-7.53); // cria o objeto Account
		
		// exibe o saldo inicial de cada objeto
		System.out.printf ( "account1 balance: $%.2f\n", 
			account1.getBalance() );
		System.out.printf ( "account2 balance: $%.2f\n\n",
			account2.getBalance() );
		
		// cria Scanner para obter entrada a partir da janela de comando
		Scanner input = new Scanner (System.in);
		double depositAmount; // quantia de déposito lida do usuário
		
		System.out.print ("Enter deposit amount for account1: "); // prompt
		depositAmount = input.nextDouble(); // obtém a entrada do usuário
		System.out.printf ("\nadding %.2f to account1 balance\n\n",
			depositAmount);
		account1.credit( depositAmount ); // adiciona o saldo de account1
		
		// exibe os saldos
		System.out.printf( "account1 balance: $%2.f\n",
			account1.getBalance() );
		System.out.printf( "account2 balance: $%.2f\n\n",
			account2.getBalance() );
			
		System.out.print( "Enter deposit amount for account2: "); // prompt
		depositAmount = input.nextDouble(); // obtém a entrada do usuário
		System.out.printf ("\nadding %.2f to account2 balance\n\n",
			depositAmount);
		account2.credit( depositAmount ); // adiciona ao saldo de account2
		
		// exibe os saldos
		System.out.printf( "account1 balance: $%.2f\n",
			account1.getBalance() );
		System.out.printf( "account2 balance: $%2.f\n",
			account2.getBalance() );
	} // fim de main
	
} // fim da classe AccountTest

ae queria que alguem me desse uma dica ou me indica-se onde posso ajustar o que provavelmente está errado pra faze eli funfa d boua !

FlwS !

6 Respostas

B

“java.util.InputMismatchException”

pode ser o formato de entrada que vc esta digitando no prompt para input.nextDouble() que não esta coicidindo.

davidbuzatto

Como vc está digitando o seu double?
Vc precisa usar ponto ao invés de vírgula.

Por exemplo? 3.75 ao invés de 3,75

[]´s

userguj

davidbuzatto: Como vc está digitando o seu double?
Vc precisa usar ponto ao invés de vírgula.

Por exemplo? 3.75 ao invés de 3,75

[]´s

to digitando por exemplo 34.56 ou 56.79
i tem outro erro, se eu digitar um nº do tipo [color=blue]int [/color]o erro passa para a linha 30

nem sei nem o que pode ser qto a esses erros ae.
preciso de uma ajuda d vc’s

B

será que não pode ser a “configurações regionais” do seu windows?

B

“float” is diferent de “double” e “int”

userguj

é qto a isso ae eu sei, mais pq por exemplo digito 56.45, ae da o erro em tempo de execução !

Criado 1 de novembro de 2009
Ultima resposta 2 de nov. de 2009
Respostas 6
Participantes 3