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:
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.
doublevalor=129.50968422;Stringpattern="0.00";DecimalFormatformato=newDecimalFormat(pattern);StringvalorFormatado=Double.toString(valor);// Aqui pega o numero do index depois de, no maximo, duas casas a partir do ponto.intindex=((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);
jwalker
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.
doublevalor=129.50968422;Stringpattern="0.00";DecimalFormatformato=newDecimalFormat(pattern);StringvalorFormatado=Double.toString(valor);// Aqui pega o numero do index depois de, no maximo, duas casas a partir do ponto.intindex=((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);
Critica construtiva.... quando trabalhar com números....use só as funções deles para trabalhar seu valor.