Question

Les regards de mise en œuvre du soleil comme ceci:

return v != v;

Quelqu'un peut-il expliquer comment cela fonctionne?

Était-ce utile?

La solution

Les valeurs NaN ne sont pas égaux à quoi que ce soit (si un côté d'une égalité est NaN, l'égalité est faux), de sorte NaN! = NaN. Il est évident que tous les deux normaux ne correspond lui-même

Autres conseils

nan est le seul double est pas égal à lui-même. Ainsi, la vérification v! = V produira seulement vrai pour NaN.

Voici ce que le Java spec a à dire:

  

opérateurs à virgule flottante ne produisent pas   exceptions (§11). Une opération qui   déversoirs produit une infinité signée,   une opération qui produit des sousverses   une valeur ou un dénormaliser signé zéro,   et une opération qui n'a pas   résultat mathématiquement défini   produit NaN. Toutes les opérations numériques   avec NaN comme un produit d'opérande comme NaN   un résultat. Comme il a été   décrit, NaN est non ordonnée, de sorte qu'un   opération de comparaison numérique impliquant   un ou deux retours nans faux et toute   ! = Comparaison impliquant les rendements NaN   vrai, y compris x! = x lorsque x est NaN.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top