ola pessoa esta aparecendo um erro, quando eu digito a quantidade de deposito mesmo se eu colocar o deposito com (23.56 ou 23,56) com virgula o com ponto
Exception in thread “main” java.util.InputMismatchException
Sei que é alguma coisa referente o Scanner
O codigo é esse
[code]import java.util.Scanner;
public class TestConta
{
//inicio do Metodo main
public static void main(String args[])
{
Conta conta1 = new Conta(50.00);//Cria o objeto Conta
Conta conta2 = new Conta(-7.53);//Cria o objeto Conta
System.out.printf("Saldo da Conta1: $%.2f",conta1.getSaldo());
System.out.printf("\nSaldo da Conta2: $%.2f",conta2.getSaldo());
Scanner input = new Scanner(System.in);
double deposito=0;
System.out.print("\nEntrar com a quantidade de deposito na Conta1");
deposito = input.nextDouble();//adiciona quantidade de deposito na variavel
System.out.printf("\n Quantidade de deposito $%.f na conta1",deposito);
conta1.credit(deposito);//adiciona o saldo na conta1
System.out.printf("Saldo da conta1 esta em: $%.2f",conta1.getSaldo());
System.out.printf("Saldo da Conta2: $%.2f",conta2.getSaldo());
System.out.print("Entrar com a quantidade de deposito na Conta2");
deposito = input.nextDouble();//adiciona quantidade de deposito na variavel
System.out.printf("\n Quantidade de deposito $%.2f na conta2",deposito);
conta2.credit(deposito);
System.out.printf("Saldo da conta2 esta em: $%.2f",conta2.getSaldo());
}//fim do Metodo main
deposito = input.nextDouble();//adiciona quantidade de deposito na variavel
Troquei por
deposito = Double.parseDouble(input.nextLine());//adiciona quantidade de deposito na variavel
//mudei aqui também para não dar erro no $%.f
System.out.print("\n Quantidade de deposito " + deposito + " na conta1");
Assim funciona, mas como eu nunca usei a classe Scanner, não vou conseguir te explicar o erro…
Mas pelo menos, desse outro jeito, vc já consegue continuar desenvolvendo… blz? :lol:
Natalia Lima vlw pela sua solução mas quero saber o motivo do erro, mesmo assim agradeço muito pela sua ajuda.
entao [color=blue]aajjbb[/color] o erro da na linha 21
Exception in thread “main” java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:840)
at java.util.Scanner.next(Scanner.java:1461)
at java.util.Scanner.nextDouble(Scanner.java:2387)
at TestConta.main(TestConta.java:21)
diz o seguinte:
Este método irá lançar InputMismatchException se o próximo token não pode ser traduzido em um duplo valor válido.
Ou seja, o erro se deve pq o valor que está passando não é válido.
Daí, pesquisando nesse fórum http://javafree.uol.com.br/topic-877257-Exception-in-thread.html?page=1
Descobri que o problema provavelmente ocorre pq o Scanner está tentando ler um número real no formato da sua máquina que deve usar a vírgula para separar os decimais, mas recebeu um número separado por ponto.
Para resolver o seu problema, coloque
Scanner input = new Scanner(System.in);
input.useLocale(Locale.US);
Aí vai funcionar se colocar números com ponto - 12.0 (por exemplo)!!!
:lol: :lol: :lol:
"Thrown by a Scanner to indicate that the token retrieved does not match the pattern for the expected type, or that the token is out of range for the expected type. "
diz o seguinte:
Este método irá lançar InputMismatchException se o próximo token não pode ser traduzido em um duplo valor válido.
Ou seja, o erro se deve pq o valor que está passando não é válido.
Daí, pesquisando nesse fórum http://javafree.uol.com.br/topic-877257-Exception-in-thread.html?page=1
Descobri que o problema provavelmente ocorre pq o Scanner está tentando ler um número real no formato da sua máquina que deve usar a vírgula para separar os decimais, mas recebeu um número separado por ponto.
Para resolver o seu problema, coloque
Scanner input = new Scanner(System.in);
input.useLocale(Locale.US);
Aí vai funcionar se colocar números com ponto - 12.0 (por exemplo)!!!
:lol: :lol: :lol:
[/quote]
I eu criei meu cadastro só para te agradecer.
Estava com dois problemas este e o fato de Double ser o tipo padrão, sendo este o motivo de eu não estar conseguindo usar o float, tinha que declarar float f = 2,44f, não lembro de ter lido nada parecido e achei a resposta aqui.
Dps em você e me salva, tava achando estranho que o ponto(.) não estava funcionando, mas a virgula estava.
Obrigado!