Bom dia, pessoal.
Estou com uma dúvida ao utilizar um valor decimal, pois preciso que ele tenha 2 dígitos após a virgula sem arredondar o mesmo.
Exemplo: se o número obtido for 249.87543771885808
Preciso armazenar apenas 249.87 (sem arredondar). Estou utilizando o DecimalFormat, mas ele sempre arrendonda para mais, exemplo 249.88… o que no meu caso, não pode acontecer.
Alguém poderia me ajudar?
Desde já agradeço a colaboração de todos.
String s = numero.toString();
s = s.substring(0, 6); // acho que em Java é assim: (start, length), mas posso estar enganado
System.out.println(s); // mostra os 6 primeiros caracteres sem nenhuma alteração numérica
Oi pedruhenrik, eu fiz isso. Mas, neste caso, ele sempre arredonda para 249.88 e não é isso que quero. Preciso que ele tenha duas casas decimais, mas exatamente igual… ou seja, 249.87
public double trunc(double valor, int casas){
double divisor = Math.pow(10, casas);
valor = valor * divisor;
int inteiro = (int) valor
valor = inteiro/divisor;
return valor;
}
Mas quando se trata de doubles, nada é garantido, como ele é armazenado na forma
de potências, mesmo uma operação mais simples pode causar alguma casa além do
formato desejado.
Muitos usam float para ter mais segurança ou até criar classes tipo Currency para
formatar em tipo Moeda.