Formato moeda

1 resposta
A

pessoal, usei o cod abaixo para deixar uma mascara de entrada no formato moeda, funcionou bem legal, o porem é que preciso fazer calculos com os valores de entrada e o problema é que o separador de decimais é com virgula, ai da pau. alguem sabe como resolver isso

// formatando formato moeda
        java.text.DecimalFormat decimal = new java.text.DecimalFormat("#,###,###.00");
        javax.swing.text.NumberFormatter numFormatter = new javax.swing.text.NumberFormatter(decimal);
        numFormatter.setFormat(decimal);
        numFormatter.setAllowsInvalid(false);
        jft_margemlucro.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(numFormatter));
        jft_margemlucro.setHorizontalAlignment(javax.swing.JTextField.TRAILING);

tambem tentei usar o cod abaixo, porem nao consegui fazer aparecer sempre duas casas decimais

String valor1 = ttf_5.getText();
        double valor2 = Double.parseDouble(valor1);
        NumberFormat moneyFormat = NumberFormat.getCurrencyInstance(new Locale("pt","BR")); //para formatar os numeros na moeda do Brasil. 
        
        moneyFormat.format(valor2); 
        moneyFormat.setMinimumFractionDigits(2); //** pelo q entendi, aki seria para definir a quandidade de casas decimais
        String valor3 = String.valueOf(valor2);
        ttf_5.setText(valor3);

se alguem puder ajudar, agradeço

1 Resposta

fwsales

Vai ficar assim:

String valor1 = ttf_5.getText();   
double valor2 = Double.parseDouble(valor1.replace(",", "."));
NumberFormat moneyFormat = NumberFormat.getCurrencyInstance(new Locale("pt","BR")); //para formatar os numeros na moeda do Brasil.   
moneyFormat.format(valor2);   
moneyFormat.setMinimumFractionDigits(2); //** pelo q entendi, aki seria para definir a quandidade de casas decimais   
String valor3 = String.valueOf(valor2);   
ttf_5.setText(valor3);
Criado 26 de novembro de 2006
Ultima resposta 1 de jan. de 2012
Respostas 1
Participantes 2