Eh bien, NaN
est encore un numérique type, malgré le fait qu'elle en fait ne représente Pas Un Nombre :-)
NaN
signifie simplement la valeur spécifique ne peut pas être représenté dans les limites de la type numérique (même si cela pourrait être dit pour tous les nombres qui doivent être arrondies à la forme, mais NaN
est un cas particulier).
Spécifique NaN
n'est pas considérée comme l'égale d'une autre NaN
parce qu'ils peuvent être des valeurs différentes. Toutefois, NaN
est encore un type de numéro, tout comme 2718 ou 31415.
Quant à la mise à jour de votre question pour expliquer en termes simples:
Une comparaison avec un NaN retourne toujours une suite non ordonnée même si l'on compare avec lui-même. Les prédicats de comparaison sont soit de signalisation ou non-de la signalisation, de la signalisation versions signal invalide exception pour de telles comparaisons. L'égalité et de l'inégalité des prédicats sont non-signalisation donc x = x renvoyer false peut être utilisé pour tester si x est un endroit calme NaN.
Tout cela pour dire (décomposé en plusieurs parties):
Une comparaison avec un NaN retourne toujours une suite non ordonnée même si l'on compare avec lui-même.
Fondamentalement, un NaN
n'est pas égal à tout autre nombre, y compris une autre NaN
, et même y compris lui-même.
Les prédicats de comparaison sont soit de signalisation ou non-de la signalisation, de la signalisation versions signal invalide exception pour de telles comparaisons.
Tenter de faire la comparaison (inférieur, supérieur, et ainsi de suite) opérations entre un NaN
, et un autre numéro peut génèrent une exception levée (de signalisation) ou tout simplement obtenir un autre NaN
que le résultat (non-signalisation ou calme).
L'égalité et de l'inégalité des prédicats sont non-signalisation donc x = x renvoyer false peut être utilisé pour tester si x est un endroit calme NaN.
Tests pour l'égalité (l'égalité, non pas égal à) ne sont jamais de signalisation afin de les utiliser à ne pas provoquer une exception. Si vous avez régulièrement un certain nombre x
, alors x == x
sera toujours vrai. Si x
est NaN
, alors x == x
sera toujours faux. C'est en vous donnant un moyen de détecter NaN
facilement (tranquillement).