Il peut sembler paradoxal qu'une valeur étiquetée comme « Pas un nombre » (NaN) soit traitée comme un nombre par le type d'opérateur. Cependant, ce comportement découle de la nature sous-jacente de NaN.
Premièrement, NaN est un type numérique, malgré son nom. Il représente une valeur numérique invalide ou indéfinie. Bien que tous les nombres soient des approximations et sont soumis à des limitations, NaN est une instance spécifique d'une valeur numérique qui ne peut pas être représentée avec précision.
Deuxièmement, NaN n'est égal à aucune autre valeur, y compris elle-même. En effet, NaN n'est pas une valeur spécifique mais plutôt un espace réservé pour un résultat invalide ou indéfini. Ainsi, comparer NaN à lui-même ou à toute autre valeur retournera toujours faux.
Une comparaison avec NaN renvoie toujours un résultat non ordonné :
NaN n’est égal à aucun nombre, y compris lui-même. Cela signifie que même comparer NaN à lui-même entraînera un résultat faux.
Prédicats de comparaison de signalisation et de non-signalisation :
Certaines opérations de comparaison, telles que inférieur ou supérieur à , peut soit lever une exception, soit renvoyer false lorsqu'il s'agit de NaN. Ces opérations sont connues sous le nom de prédicats de signalisation et de non-signalisation.
Tests de NaN en utilisant l'égalité et l'inégalité :
Étant donné que les tests d'égalité et d'inégalité ne sont pas des signaux, ils le feront ne lance pas d'exceptions. Si un nombre régulier est testé pour son égalité avec lui-même, il retournera toujours vrai. Cependant, si un NaN est testé pour son égalité avec lui-même, il retournera toujours faux. Cela constitue un moyen pratique de détecter les valeurs NaN « tranquillement ».
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!