Alguem poderia me explicar ?
double d1 = 8.85;
double d2 = 3.0;
java.lang.System.out.println( d1 / d2 );
o resultado está sendo 2.9499999999999997
mas se fizer com float fica correto 2,95
Alguem poderia me explicar ?
double d1 = 8.85;
double d2 = 3.0;
java.lang.System.out.println( d1 / d2 );
o resultado está sendo 2.9499999999999997
mas se fizer com float fica correto 2,95
Essa “devisão”
está correta sim…o double é mais preciso que o float, mostra mais casas decimais…no float, ele arredonda.
Creio que é isso ai. Se falei merda, me desculpem ai! Abs!
mas se fizermos o cálculo no velho e bom lapis o resultado será 2,95
que precisão é está, sei que o java trabalha com arredondamentos de casas, mas acho que este não é o caso
O double tem uma precisão maior que o float, talvez por isso esteja dando esse resultado. Se voce usar um printf com precisao de duas casa decimais usando double, o resultado deve ser o mesmo. Por exemplo: printf("%.2f" , d1/d2);
Acredito que seja isso.
What Every Computer Scientist Should Know About Floating-Point Arithmetic
P.S - desculpa o comentário…mas devisão não amiguinho.Tenta assim: Divisão,fica visualmente mais bonito e ortograficamente mais correto.Abraço.
desculpe meu péssimo português, e minha falta de atenção ao digitar o texto