Valor double sendo somado incorretamente (JAVA)

3 respostas
V

Eu tenho dois valores:

double dado = gerador.nextInt(6) + 1;
dado = dado/1000 %.3f;
double dado2 = gerador.nextInt(6) + 1;
dado2 = dado2/1000 %.3f;

Porém, ao somar esses valores com um double(32.15, por exemplo) ao invés de o resultado me retornar um número com 3 casas decimais ele me retorna um número totalmente quebrado, mesmo eu definindo o parâmetro %.3f.
O que fazer?

3 Respostas

peczenyj

primeiro entenda o motivo:

https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html

segundo, cogite usar numeros racionais se vc quer uma precisão melhor

http://www.scit.wlv.ac.uk/~in8297/CP4044/workshops/w05.html

porem com ponto flutuante vc sempre vai ter dizimas estranhas cujo resultado é “estranho”

victormenegusso

Apenas para complementar a resposta do @peczenyj, tem um artigo da Caelum em português

peczenyj

po eu esqueci de postar isso, obrigado.

Criado 29 de setembro de 2016
Ultima resposta 29 de set. de 2016
Respostas 3
Participantes 3