Problema com conversão

5 respostas
marcos3

Pessoal estou tendo problemas na seguinte questão, tenho um campo formatado onde o usuário digita o valor do salário, que é formatado para: "###,###,##0.00" na sequencia capturo tal valor e faço o seguinte tratamento:String vlrSalario = ftfSalario.getText().replace("\\.","").replaceAll(",","."); this.salario = Double.parseDouble(vlrSalario);

Nesse momento é apresentado um erro de numberformatexception… ao meu ver o tratamento que fiz acima aparenta estar correto, alguém pode me dar alguma sugestão?

5 Respostas

Janerson
marcos@marcos:
Pessoal estou tendo problemas na seguinte questão, tenho um campo formatado onde o usuário digita o valor do salário, que é formatado para:
"###,###,##0.00"
na sequencia capturo tal valor e faço o seguinte tratamento:
String vlrSalario = ftfSalario.getText().replace("\\.","").replaceAll(",","."); 
this.salario = Double.parseDouble(vlrSalario);

Nesse momento é apresentado um erro de numberformatexception... ao meu ver o tratamento que fiz acima aparenta estar correto, alguém pode me dar alguma sugestão?

Bom dia amigo !!!!

tenta assim
number = df.format(number1);//passando o valor formatado para uma String
formata = number.replace("\\.","").replaceAll(",",".");//fazendo o replace
        
System.out.println(df.format(number1));//Formatação original do seu sistema
System.out.println((formata)); //nova Formatação
marcos3

Fazendo novos testes aqui e ainda sem aplicar a dica do nosso amigo, constatei que se for informado, por exemplo, o valor de 678,00 funciona sem problema; agora se for informado 1.000,00, acontece o erro.

E

O valor é “1.000,00” que você quer converter para “1000.00”. Então (note que a ordem dos tratores altera o viaduto) :

String vlrSalario = ftfSalario.getText().replace(".", "").replace (",",".");
this.salario = Double.parseDouble(vlrSalario);
  1. Tiro o ponto : “1.000,00” -> “1000,00”
  2. Troco o “,” por “.” : “1000,00” --> “1000.00”
marcos3

Valeu cara!
Desta forma que você indicou resolvi o problema. Agora uma pequena dúvida, a barra () que estava usando, quando ela deveria ser utilizada então?

E

“\.’” deve ser usada em expressões regulares para indicar que um “.” é um “.” mesmo, não algo que bate com qualquer caracter.

Ou seja, apenas no replaceAll (que não usei para resolver o seu problema).

Criado 21 de julho de 2013
Ultima resposta 22 de jul. de 2013
Respostas 5
Participantes 3