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.
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.
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));
[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]