Java signé zéro et de la boxe

Dernièrement, j'ai écrit un projet en Java et a remarqué une étrange caractéristique avec un lit double/Double mise en œuvre. Le type double en Java a deux 0, c'est à dire 0.0 et -0.0 (signé zéro). La chose étrange est que:

0.0 == -0.0

évalue à true, mais:

new Double(0.0).equals(new Double(-0.0))

évalue à false. Personne ne sait la raison derrière tout cela?

  • L'habituelle façon d'éviter cela est d'ajouter 0.0. Voir ici pour un peu plus de détails.
InformationsquelleAutor uhz | 2013-02-08