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
S
samara.cin
Será que não tem como “truncar” o valor de numero sem precisar converter para string?
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
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.