Converter valor recebido do bandod e dados em flot para uma string 0,00
9 respostas
MauricioLanner
Boa noite pessoal, gostaria de saber se é possivel eu converter um valor de uma tabela que é float, para um Label que exibiria em formato 0,00 ou 0.00, o importante é ser duas casas decimais depois do . estou passando o codigo para darem uma olhadinha.
intsetar=TblDividas.getSelectedRow();txtIdDiv.setText(TblDividas.getModel().getValueAt(setar,0).toString());//exibe o valor inicial da dividalbValorInicial.setText(TblDividas.getModel().getValueAt(setar,2).toString());//atualiza o valor da divida
Só pra finalizar a Label exibe o valor, mas com várias casas depois do ponto
Opa, funcionou muito bem, mas gerou um erro na hora de comprar os valores, não entendi bem o porque.
//metodo que pega o id da dividaprivatevoidsetarcliente(){intsetar=TblDividas.getSelectedRow();txtIdDiv.setText(TblDividas.getModel().getValueAt(setar,0).toString());//exibe o valor inicial da dividalbValorInicial.setText(TblDividas.getModel().getValueAt(setar,2).toString());//atualiza o valor da dividafloatvalor_atualizado=(float)(TblDividas.getModel().getValueAt(setar,2));Datedata_Abertura=(Date)(TblDividas.getModel().getValueAt(setar,1));Datedata=newDate();intdias;floatjuros=0;floatmulta=(valor_atualizado*2)/100;for(dias=0;data.after(data_Abertura);dias++){data.setDate(data.getDate()-1);juros=(valor_atualizado*0.35f)/100;valor_atualizado=valor_atualizado+juros;}valor_atualizado=valor_atualizado+multa;Stringvalor_atualizado_decimal=String.format("%.2f",valor_atualizado);lbValorFinal.setText(String.valueOf(valor_atualizado_decimal));}
erro Exception in thread “AWT-EventQueue-0” java.lang.NumberFormatException: For input string: “13,86”
MauricioLanner
Esqueci de por o método de comparação
privatevoidpagar_divida(){if(Double.parseDouble(lbValorFinal.getText())==Double.parseDouble(txtVp.getText())){intconfirma=JOptionPane.showConfirmDialog(null,"Tem certeza que deseja pagar essa divida?","Atenção",JOptionPane.YES_NO_OPTION);if(confirma==JOptionPane.YES_OPTION){Stringencerrar="encerrado";Stringsql2="update divida set status=? where id_divida=?";try{pst=conexao.prepareStatement(sql2);pst.setString(1,encerrar);pst.setString(2,txtIdDiv.getText());intapagado=pst.executeUpdate();if(apagado>0){JOptionPane.showMessageDialog(null,"Divida paga");//limpa os campostxtVp.setText(null);lbValorFinal.setText(null);lbValorFinal.setText(null);}}catch(Exceptione){JOptionPane.showMessageDialog(null,e);}}}else{System.out.println("Valor diferente");}}
MauricioLanner
O que fica pegando é exatamento isso
Double.parseDouble(lbValorFinal.getText())
vi aqui no forum que se multiplicar por um pode dar certo, mas não sei como multiplicar dentro do codigo
staroski
Quando você faz Double.parseDouble a String recebida deve conter ponto como separador decimal, não vírgula.
Ou seja, tem que trocar o 13,86 por 13.86.
MauricioLanner
Existe uma forma de converter o ponto para virgula no Double.parseDouble(lbValorFinal.getText()) ?
rodriguesabner
Stringentrada=campovalor.getText();NumberFormatnf=NumberFormat.getNumberInstance(newLocale("pt","BR"));doublerecebido=(Double)nf.parse(entrada);//PreparedStatementpst.setDouble("numero do pst aqui",recebido);
staroski1 like
Mas você tem que fazer o contrário, trocar a vírgula pelo ponto pro parseDouble funcionar