Erro de conversão ! [RESOLVIDO]

6 respostas
S

Olá boa noite !

Tenho um valor de outra classe sendo exibido em outra, contudo pego este valor faço a conversão do mesmo para realizar um pequeno calculo, porem ao executa-lo apresenta o seguinte erro:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "52,00" // valor este derivado de outra classe
        at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
        at java.lang.Double.parseDouble(Double.java:510)

Segue o código do método:

private void dinheiroActionPerformed(java.awt.event.ActionEvent evt) {                                         
        double dinheiroPago = 0, recebeValorTotal=0,trocoCliente;

        dinheiroPago = Double.parseDouble(dinheiro.getText());
        recebeValorTotal = Double.parseDouble(valorTotal.getText());

        if(!verificarDinheiro(dinheiroPago,recebeValorTotal)){
            troco.setText("");        
        } else {
            troco.setText(calcularTroco(dinheiroPago,recebeValorTotal));

        }
}

public boolean verificarDinheiro(double dinheiroPago, double recebeValorTotal){
            boolean resp;
            if(dinheiroPago == 0 || dinheiro.getText().equals("") ){
                resp= false;
            }else{
                resp = true;
            }
            if(dinheiroPago < recebeValorTotal ){
                JOptionPane.showMessageDialog(null,"Esta faltando: R$"+(recebeValorTotal-dinheiroPago));
                resp = false;
            }
            return resp;
    }

    public String converterDoubleToString(double troco){
        DecimalFormat format = new DecimalFormat("0.00");
        String resultadoFormatacao = format.format(troco); 
        String[] addVirgula = resultadoFormatacao.split("[.]"); 
        String resultadoFinal = addVirgula[0]+","+addVirgula[1];
        return resultadoFinal;
    }

6 Respostas

Eric_Yuzo

Acho que o esperado para conversão é “52.00” e o que está chegando é “52,00”. O separador decimal padrão do java é ponto e não a vírgula.

Veja se não é este o problema.

d34d_d3v1l

coloca um

try{ }catch(Exception e){ }

S

Com o try/catch o erro não aparece, mas também o resultado não é exibido.

coloquei alguns jOption’s para saber onde ocorre o erro.
segue a linha que em acontece o erro:

recebeValorTotal = Double.parseDouble(valorTotal.getText()); // a partir desta linha surge o erro.

//erro
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "52,00" // frisando que este valor é derivado de outra classe

tentei fazer de outra forma …

public void preencheValor(){
        valorTotal.setText(this.valor);
        v.setValorTotal(valorTotal.getText());
    }
...
recebeValorTotal = Double.parseDouble(v.getValorTotal());
...

… contudo, não obtive exito, o erro ainda persiste.

E

Cara, faz um replace(",",".") onde tá os getText().

S

Uhúu, funcionou utilizando o replace, valeu Elisson !!!

...
recebeValorTotal = Double.parseDouble(v.getValorTotal().replace(',','.'));
...

Obrigado a todos que responderam !!

drigo.angelo

d34d_d3v1l:
coloca um

try{ }catch(Exception e){ }

Por favor, não faça isso :!:

Criado 5 de fevereiro de 2011
Ultima resposta 7 de fev. de 2011
Respostas 6
Participantes 5