Erro " for input String "

2 respostas
viniciusfaleiro

Estou tendo o seguinte erro com a minha aplicação:" for input String 1.554.83 " quando executo o código gastos = gastos + Double.parseDouble(garbage.get(16).toString());

Fiz uma query e joguei dentro do vetor garbage. Agora estou tentando pegar o valor que veio de la do banco no formato (xxx.xxx,00) más acho o parseDouble não consegue converter assim… Como posso fazer?

2 Respostas

rafabene

Dê uma olhada na classe http://java.sun.com/javase/6/docs/api/java/text/NumberFormat.html que tem exatamente converter uma String para um número de acordo com a formatação esperada. De qualquer maneira, acredito que sempre haverá problema se você usar dois pontos como informado (1.554.83) no caso deveria haver um sinal diferente para as partes decimais tipo 1.554,83 ou 1,554.83

Andre_Brito

Você pode também usar DecimalFormat e construir a mask de acordo com suas necessidades. Abaixo disso, você deve usar um replace(’,’, ‘.’);. Agora, a string tá 1.50, em vez de 1,50. Aí chama o método parseDouble que ele entende.

DecimalFormat formatador = new DecimalFormat("###.###000.000");
String s = formatador.format(valorDouble);
s.replace(',','.');
Double d = Double.parseDouble(s);

Eu não sei muito bem como funciona o parâmetro de DecimalFormat, mas acho que desse jeitão funciona.

Criado 12 de abril de 2008
Ultima resposta 12 de abr. de 2008
Respostas 2
Participantes 3