Problema com conversão de double para String

3 respostas
J

preciso pegar um valor, da seguinte forma:

Scanner ent = new Scanner(System.in);
System.out.println("Digite um valor:");
String val = ent.nextLine();

e esse valor, tenho que converter para double…
porém, como posso fazer para que, caso o valor digitado seja inválido, novamente dê a mensagem para digitar o valor, e fique aguardando?

grato

3 Respostas

B

vc pode colocar isso dentro de um “try/catch” e isto dentro de um loop qualquer… até ser válido a operação

I
boolean doAgain = true;
Scanner ent = new Scanner(System.in);
while (doAgain) {
    System.out.println("Digite um valor:");
    String val = ent.nextLine(); 
    try { 
         double d = Double.parseDouble(val);
         doAgain = false;
    } catch(NunberFormatException e) { 
         System.out.println("damn it! valor inválido: " + val);
    }
}

Altere o escopo das declarações, T+

V

“julioromano”:
preciso pegar um valor, da seguinte forma:

Scanner ent = new Scanner(System.in);
System.out.println("Digite um valor:");
String val = ent.nextLine();

e esse valor, tenho que converter para double…
porém, como posso fazer para que, caso o valor digitado seja inválido, novamente dê a mensagem para digitar o valor, e fique aguardando?

grato

voce pode supor que o usuario sera inteligente o suficiente pra digitar somente valores double…
ficaria assim:

Scanner ent = new Scanner(System.in);
System.out.println("Digite um valor:");
String val = ent.nextLine();
double valModificado = Double.parseDouble(val);

ou: (se nao me engano funciona)

Scanner ent = new Scanner(System.in);
System.out.println("Digite um valor:");
double val = ent.nextDouble();
Criado 23 de novembro de 2006
Ultima resposta 24 de nov. de 2006
Respostas 3
Participantes 4