2010-04-20 16 views

Répondre

12

Les valeurs NaN ne sont égales à rien (si un côté d'une égalité est NaN, l'égalité est fausse), donc NaN! = NaN. Évidemment, chaque double normal est égal

3

Un nan est le seul double qui ne soit pas égal à lui-même. Ainsi, vérifier v! = V ne produira que True pour NaN.

Voici ce que le Java spec a à dire:

opérateurs à virgule flottante ne produisent pas exceptions (§11). Une opération qui déborde produit un débordement signé, une opération qui produit des sousverses une valeur dénormalisé ou un signe égal à zéro, et une opération qui n'a aucun résultat mathématiquement définie produit NaN. Toutes les opérations numériques avec NaN en tant qu'opérande produisent NaN en tant que résultat . Comme cela a déjà été décrit , NaN est non ordonnée, donc une opération de comparaison numérique impliquant un ou deux NaN retourne false et tout! = Comparaison impliquant NaN retourne vrai, y compris x! = X lorsque x est NaN.