Procurei aqui no site sobre como formatar valores com 2 casas decimais. Até consegui, utilizando o bigDecimal, mas ele arredonda o valor e eu queria apenas eliminar os valores a partir da 3ª casa.
Tentei utilizar o DecimalFormat, mas não sei o que estou fazendo de errado, pois não elimina:
Exemplo: pmt = 129,50268422
[code]formato = new DecimalFormat(“0.00”);
formato.format(pmt);
Encontrei uma maneira de formatar um valor double sem arredondar, pq se vc mandar nao arredondar, uma exception é lançada. Então criei um código para formatar sem arredondar o valor. Talvez tenha uma maneira mais prática.
[code]double valor = 129.50968422;
String pattern = “0.00”;
DecimalFormat formato = new DecimalFormat(pattern);
String valorFormatado = Double.toString(valor);
// Aqui pega o numero do index depois de, no maximo, duas casas a partir do ponto.
int index = ((valorFormatado.length()-(valorFormatado.indexOf(".")+1))-2);
index = valorFormatado.length()-(index<0?0:index);
// Aqui garante que o valor vai ter duas casas decimais. Independente se for zero ou nao.
valorFormatado = valorFormatado.substring(0, index);
valorFormatado = valorFormatado.indexOf(".")== valorFormatado.length()-2?valorFormatado+"0":valorFormatado;
System.out.println(valorFormatado);[/code]
[quote=leo_mf]Encontrei uma maneira de formatar um valor double sem arredondar, pq se vc mandar nao arredondar, uma exception é lançada. Então criei um código para formatar sem arredondar o valor. Talvez tenha uma maneira mais prática.
[code]double valor = 129.50968422;
String pattern = “0.00”;
DecimalFormat formato = new DecimalFormat(pattern);
String valorFormatado = Double.toString(valor);
// Aqui pega o numero do index depois de, no maximo, duas casas a partir do ponto.
int index = ((valorFormatado.length()-(valorFormatado.indexOf(".")+1))-2);
index = valorFormatado.length()-(index<0?0:index);
// Aqui garante que o valor vai ter duas casas decimais. Independente se for zero ou nao.
valorFormatado = valorFormatado.substring(0, index);
valorFormatado = valorFormatado.indexOf(".")== valorFormatado.length()-2?valorFormatado+"0":valorFormatado;
System.out.println(valorFormatado);[/code][/quote]
Critica construtiva… quando trabalhar com números…use só as funções deles para trabalhar seu valor.