Pessoal eu tenho o seguinte código:
double d = 100*1.1;
System.out.println(d);
A saida deveria ser 110 porém eu tenho o valor 110.00000000000001 impresso na tela.
Alguém tem alguma explicação para isso??
Obrigado
Pessoal eu tenho o seguinte código:
double d = 100*1.1;
System.out.println(d);
A saida deveria ser 110 porém eu tenho o valor 110.00000000000001 impresso na tela.
Alguém tem alguma explicação para isso??
Obrigado
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4497156
Google keywords: java double precision
Complementando: http://java.sun.com/features/2001/06/floating-point_arithmetic.pdf
Até!
jr_klein. Você já ouviu falar de teoria dos erros:
Nem sempre o computador consegue multiplicar os números corretamente. Se vc estudar PO vai entender.
Só para facilitar um pouco: Não há como garantir uma precisão infinita com um número limitado de bits, portanto essas “imprecisões” - que na verdade são garantias da especificação IEEE 754 - têm que ser “ignoradas”. Para cálculos mais precisos, a classe BigDecimal é mais apropriada.
Até!