Erro com o DecimalFormat

2 respostas
swingjava
marcoslogan

Pessoal boa noite.

Estou desenvolvendo um sistema e me deparei com um pequeno problema. Tenho um campo salário no meu formulário de atualização, quando o usuário seleciona algum registro que aparece no jTable, o sistema automaticamente preenche os campos, então para formatar o salário para o nosso formato utilizei o DecimalFormat, só que quando vou atualizar os dados e preciso converter o valor que está no campo salário para double, nessa hora que acontece o seguinte erro.

Exception in thread “AWT-EventQueue-0” java.lang.IllegalArgumentException: Cannot format given Object as a Number.

Tentei utilizar o método replace do String, mas não deu certo, consegui atualizar os dados mas depois percebi que o valor estava errado.

Agradeço desde já quem puder me ajudar.

Atenciosamente

Marcos.

2 Respostas

rodriguesabner
public void converterValor() {
    String s;
    double d;
    DecimalFormatSymbols dfs = new DecimalFormatSymbols(new Locale("pt", "BR"));
    // Formato com sinal de menos -5.000,00
    DecimalFormat df1 = new DecimalFormat("#,##0.00");
    d = Double.parseDouble(campovalor.getText());
    s = df1.format(d);
    System.out.println(s); // imprime -5.000,00
    campovalor.setText(s); // imprime -5.000,00
}
marcoslogan

E para converter novamente para double? Na minha aplicação eu aplico esse formato, mas quando vou atualizar no banco preciso converter de volta.

Criado 22 de novembro de 2018
Ultima resposta 22 de nov. de 2018
Respostas 2
Participantes 2