Formatando com NumberFormat ou DecimalFormat

Pessoal, ja pesquisei e não acho então rapido e rasteiro: eu tenho numeros com 5 posicoes tipo 78945 e as casas deles sempre são 3 inteiros e 2 decimais 789,45. Qual seria o padrão pra formatar assim?

Obrigado.

Dá uma olhada na classe DecimalFormat:

http://java.sun.com/j2se/1.5.0/docs/api/

Se você tem um valor em centavos e precisa formatar em reais, divida por 100, e use um DecimalFormat:

NumberFormat nf = new DecimalFormat ("#,##0.00", new DecimalFormatSymbols (new Locale ("pt", "BR")));
double valor = 78945;
System.out.println (nf.format (valor / 100));
1 curtida

[APAGADO]

Prezado Duende Macabro…

DecimalFormat é uma boa classe assim como NumberFormat com seus metodos getCurrencyInstance() para $$$$$, getNumberInstance() numeros…

Rodrigo

Galera consegui resolver esta ai o metodo! Obrigado a todos…

[code]//Converte uma String para o formato de um BigDecimal
public static BigDecimal ConvertStringValueToBigDecimal(String numero, Integer qtdeCasasDecimais) {
String casasDecimais = “”;
String num = numero;
DecimalFormat df = null;
try {
if (qtdeCasasDecimais > 0) {
for (int i = 0; i < qtdeCasasDecimais; i++) {
casasDecimais = casasDecimais.concat(“0”);
}
if (num.equals("")) {
num = “0.”.concat(casasDecimais);
}
df = new DecimalFormat("#,##0.".concat(casasDecimais), new DecimalFormatSymbols(new Locale(“pt”, “BR”)));
df.setParseBigDecimal(true); // aqui o pulo do gato
df.setRoundingMode(RoundingMode.DOWN);
return (BigDecimal) df.parse(num); // deve voltar o BigDecimal “1234.56”
} else {
if (num.equals("")) {
num = “0”;
}
df = new DecimalFormat("###########");
df.setParseBigDecimal(true);
df.setRoundingMode(RoundingMode.DOWN);
return new BigDecimal(((BigDecimal) df.parse(num)).intValue());
}

    } catch (ParseException ex) {
        Logger.getLogger(Utilitarios.class.getName()).log(Level.SEVERE, null, ex);
        return new BigDecimal("0");
    }
}[/code]