Problema ao Alterar o Texto do Label

Pessoal,
estou criando um sistema de vendas em java, utilizando o netbeans para criar um JavaDesktop Application.
Tudo andava bem até ter dificuldades com o valores no formato float, não entendo bem o motivo mas o java pega valores como 80,34 e quando soma com 30,53 ele dá uma soma meio estranha como 110,869999, para resolver isso pesquisei e estou usando a formatação do float. Mas na hora de alterar o Label que contém o valor total ele simplesmente não faz mais nada apenas trava. Segue o trecho de código que eu fiz:

                DecimalFormat df = new DecimalFormat();
                df.applyPattern("#,##0.00");
                float preco = Float.parseFloat(jTextField3.getText());
                float total = Integer.parseInt(wquant) * preco;
                DefaultTableModel modelotabela = (DefaultTableModel)jTable1.getModel();
                modelotabela.addRow(new Object[]{jTextField1.getText(),jTextField2.getText(),jTextField3.getText(),jTextField4.getText(),df.format(total)});
                float totalgeral = Float.parseFloat(jLabel16.getText())+total;
                try{
                    DecimalFormat df2 = new DecimalFormat("#,##0.00");
                    //df2.applyPattern("#,##0.00");
                    String valor = df2.format(totalgeral);
                    JOptionPane.showMessageDialog(this,"Formatado "+valor);
                    JOptionPane.showMessageDialog(this,valor.length());
                    jLabel16.setText(valor);
                }
                catch (Exception e)
                {
                    JOptionPane.showMessageDialog(this,e);
                }

já testei comentar a linha que altera o texto do label para ter certeza se era isso mesmo e o código fica funcionando corretamente. Até coloquei um try para tentar ver se exibia alguma mensagem de erro, mas nada.

se alguém tiver um sugestão ficarei muito grato.

Atenciosamente,

Ranieri Viana

A resposta do porque da falta de precisão do float e do double está aqui: http://guj.com.br/posts/list/101879.java#549684

http://www.guj.com.br/posts/list/114946.java talvez ajude

Marco,
muito obrigado meu amigo, mas tem algum erro com relação ao código porque eu gostaria de utilizar o Formatador, principalmente no momento em que pego as informações do banco, e outra situação: se o valor for 45,5 sem a formatação ficaria assim, esteticamente seria melhor 45,50.

O que você sugere?

Pessoal,
valeu pela ajuda.
O problema era tão simples que eu não consegui ver, a questão é que o formatador, retorna um float com “,” (virgula), porém o Float.parsefloat só aceita com “.” (ponto), logo usei o replaceall da string e pronto, está funcionando perfeitamente agora.

Abração Galera.

Ranieri Viana