Converter valor recebido do bandod e dados em flot para uma string 0,00

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.

 int setar = TblDividas.getSelectedRow();
                txtIdDiv.setText(TblDividas.getModel().getValueAt(setar, 0).toString());
                //exibe o valor inicial da divida
                lbValorInicial.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

1 curtida
public void converterValor() {
    String s;
    double d;
    DecimalFormat df1 = new DecimalFormat("R$ #,##0.00");
    d = Double.parseDouble(campovalor.getText());
    s = df1.format(d);
    campovalor.setText(s);
}
String texto = String.format("%.2f", valorFloat);

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 divida
        private void setarcliente (){
            int setar = TblDividas.getSelectedRow();
            txtIdDiv.setText(TblDividas.getModel().getValueAt(setar, 0).toString());
            //exibe o valor inicial da divida
            lbValorInicial.setText(TblDividas.getModel().getValueAt(setar, 2).toString());
            //atualiza o valor da divida
            float valor_atualizado = (float) (TblDividas.getModel().getValueAt(setar, 2));
            Date data_Abertura = (Date) (TblDividas.getModel().getValueAt(setar, 1));
            Date data = new Date();
            
            
            int dias;
            float juros = 0;
            float multa = (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;
            String valor_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”

Esqueci de por o método de comparação

private void pagar_divida(){
            if (Double.parseDouble(lbValorFinal.getText()) == Double.parseDouble(txtVp.getText())){
                int confirma = JOptionPane.showConfirmDialog(null, "Tem certeza que deseja pagar essa divida?", "Atenção", JOptionPane.YES_NO_OPTION);
                if (confirma == JOptionPane.YES_OPTION) {
                    String encerrar = "encerrado";
                    String sql2 = "update divida set status=? where id_divida=?";
                try {
                    pst = conexao.prepareStatement(sql2);
                    pst.setString(1, encerrar);
                    pst.setString(2, txtIdDiv.getText());
                    int apagado = pst.executeUpdate();
                    if (apagado > 0) {
                        JOptionPane.showMessageDialog(null, "Divida paga");
                        //limpa os campos
                        txtVp.setText(null);
                        lbValorFinal.setText(null);
                        lbValorFinal.setText(null);
                    }
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, e);
            }
        }
            }else{
                System.out.println("Valor diferente");
            }
        }

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

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.

Existe uma forma de converter o ponto para virgula no Double.parseDouble(lbValorFinal.getText()) ?

            String entrada = campovalor.getText();

            NumberFormat nf = NumberFormat.getNumberInstance(new Locale("pt", "BR"));

            double recebido = (Double) nf.parse(entrada);

            //PreparedStatement
            pst.setDouble("numero do pst aqui", recebido);

Mas você tem que fazer o contrário, trocar a vírgula pelo ponto pro parseDouble funcionar

String texto = lbValorFinal.getText();
Double valor = Double.parseDouble(texto.replace(',', '.'));
1 curtida