Por que não podemos usar '==' para comparar dois números flutuantes ou duplos [duplicado]
Esta pergunta já tem uma resposta aqui:
Teste para igualdade de ponto flutuante. (FE_FLOATING_POINT_EQUALITY) 3 respostasPor que Double.NaN == Double.NaN retorna false? 9 respostasEstou lendo Java eficaz por Joshua Bloch e emtem 8: Obedeça ao contrato geral ao substituir igual a, esta declaração está escrita
para campos flutuantes, use o método Float.compare; e para campos duplos, use Double.compare. O tratamento especial dos campos float e double é necessário pela existência de Float.NaN, -0.0f e pelas constantes duplas análogas;
Pode alguém me explicar, por exemplo, por que não podemos usar==
para comparação flutuante ou dupla