Comment fonctionne Double.isNaN ()?
-
30-09-2019 - |
Question
Les regards de mise en œuvre du soleil comme ceci:
return v != v;
Quelqu'un peut-il expliquer comment cela fonctionne?
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.