public class TesteArredondamento {
public static void main(String[] args) {
BigDecimal a = new BigDecimal(4.01);
System.out.println(a);
}
}
Teste de números em BigDecimal
R
Fiz esse teste:
O resultado foi 4.0099999999999997868371792719699442386627197265625
Alguém poderia me explicar por que aconteceu isso?
Eu gostaria de salvar um BigDecimal em um campo NUMERIC(18,2) do firebird pelo hibernate. Após salvar, eu irei fazer a pesquisa. Creio que dessa forma terei problemas.
Ex: preciso salvar a altura 4,02. Porém, antes de fazer isso, preciso verificar se o 4,02 já está no banco. Alguma dica para evitar dores de cabeça e erros no programa?
2 Respostas
Olá,
Utilize o cosntrutor com String numérica, fazer o que você fez é quase o mesmo que usar floats diretamente emte rmos de arredondamento 
R
Obrigado. É isso mesmo!
Depois que percebi que fazendo isso eu estaria utilizando o construtor que recebe double como parâmetro, vi na documentação que a melhor forma de fazer isso é usando o construtor que recebe String. Por exemplo, new BigDecimal(“4.3”).
Estou percebendo que estou meio malandro :oops:
Lá na documentação do BigDecimal(double) fala exatamente o que eu perguntei :!:
Criado 8 de agosto de 2005
Ultima resposta 8 de ago. de 2005
Respostas 2
Participantes 2
Alura Sistemas operacionais: entenda seu conceito e suas funções Descubra o que são sistemas operacionais, suas funções e tipos. Aprenda tudo de forma clara e objetiva. Não perca tempo!
Casa do Codigo Orientacao a Objetos: Aprenda seus conceitos e suas... Por Thiago Leite e Carvalho — Casa do Codigo