Accueil

Orientation générale

Barre de recherche

DicoNombre

DicoMot Math

DicoCulture

Atlas des maths

Rubriques

Index alphabétique

Nouveautés

Actualités

Références

Édition du: 19/11/2025

M'écrire

Brèves de Maths

 

INDEX

 

 

Nombre

NOMBRES 0 et ∞

& Non-NOMBRE

Zéro

Infini

Infini et zéro

Not a Number (NaN)

 

 

Not a NUMBER (NaN)

 

En mathématiques et en informatique, chaque valeur est censée avoir une définition précise et une place déterminée sur la droite numérique. Pourtant, il existe une exception fondamentale, une représentation de l'indéfinissable : NaN, acronyme de Not a Number.

Loin d'être une erreur, NaN est un concept normalisé, essentiel à la robustesse du calcul numérique. Il représente le résultat d'opérations impossibles ou indéfinies dans le domaine des nombres réels, agissant comme un tampon qui permet aux programmes informatiques de continuer à s'exécuter plutôt que de s'effondrer brutalement.

 

Sommaire de cette page

>>> Approche

>>> Culture (historique et langues)

>>> Codage

>>> Propriétés

>>> Opérations

>>> Bilan

 

Débutants

Nombres

 

Glossaire

Nombres

 

 

Approche

haut

 

En bref

La notion de NaN, acronyme de "Not a Number", désigne une valeur spéciale utilisée:

*      en mathématique pour représenter un résultat numérique indéterminé ou invalide; et

*      en informatique pour signaler des situations où une valeur réelle ou flottante n’existe pas, n’est pas définie ou ne peut être représentée.

 

En fait, NaN est un symbole qui représente une quantité numérique dont la valeur ne peut pas être déterminée. Ce qui est souvent le cas lorsque le zéro et l'infini sont mal utilisés.

 

Informatique

En programmation, une division par zéro ou une racine invalide provoquait souvent l'arrêt immédiat du programme (crash). NaN a été introduit pour permettre le calcul flottant résilient.

Au lieu d'interrompre le processus, le processeur renvoie une valeur spéciale "NaN" et continue l'exécution.

Cela permet à l'algorithme de gérer l'erreur plus tard ou de propager l'information d'échec jusqu'à la sortie finale.

 

 

Cas d'usage

Un NaN est une valeur spéciale utilisée dans les calculs en virgule flottante pour représenter :

*      des résultats indéfinis,

*      des opérations mathématiquement impossibles,

*      des données non numériques ou invalides.

 

Certaines opérations donnent un résultat non définissable dans le format utilisé :

*      conversion d’une chaîne non numérique en nombre,

*      lecture d’une donnée manquante dans un tableau numérique,

*      analyse d’un fichier contenant des erreurs de format.

 

Exemples

Indétermination

 

Monde des infinis

 

 

x (mod 0)

 

Sans extension complexe

log(-n)

Non défini en négatif

Suite de Grandi

Voir Brève 63-1363

 

 

Culture

haut

 

Origine historique

L’idée d’un symbole d’indétermination existe en mathématiques depuis longtemps; par exemple l’usage informel de "indéterminé".

 

En informatique, NaN a été standardisé avec la norme IEEE 754 (1985 et versions ultérieures).
But: permettre aux calculs en virgule flottante de continuer sans planter lorsqu’une valeur invalide apparaît.

 

Utilisation particulière

*      En calcul : NaN = "Résultat mathématiquement impossible".

*      En Data Science (bases de données) : NaN = "Information inconnue" ou "Null"ou "donnée manquante".

  

 

Langue

Il n’existe aucune traduction officielle dans les normes.

L’acronyme anglais NaN est universel pour garantir la compatibilité internationale.

 

Anglais

NaN (Not a Number) is, in computing, a value (or symbol) that is usually produced as the result of an operation on invalid input operands, especially in floating-point calculations.

NaNs are close to some undefined or inderterminate expressions in mathematics. In short, NaN is not really a number but a symbol that represents a numerical quantity whose magnitude cannot be determined by the operating system.

This mainly occurs when infinity and zero are misused in expressions.

   

 

Codage

Un nombre à virgule flottante est composé de trois parties :

1.      Le Signe (1 bit)

2.      L'Exposant

3.      La Mantisse

Tous les bits à 1 dans l'exposant  ET:

*      Mantisse nulle: la valeur représente l'Infini

*      Mantisse non-nulle: c'est un NaN
le bit de poids fort indique si le calcul se poursuit ou s'il faut déclencher un arrêt.

 

 

Propriétés

haut

 

NaN n’est pas un nombre

Mathématiquement, NaN n’appartient pas à l’ensemble .

Il se comporte comme un élément spécial hors de la structure d’un corps ou d’un espace métrique standard.

 

Non réflexivité et indétermination des comparaisons

Les comparaisons impliquant NaN ne satisfont pas aux propriétés usuelles de l’ordre total : toute comparaison d’égalité ou d’ordre avec NaN est fausse, y compris NaN = NaN.

Paradoxe de la comparaison:

*       NaN == NaN est FAUX (égalité).

*       NaN != NaN est VRAI (différent).

*       NaN < x et NaN > x sont toujours FAUX, quel que soit $.

 

Ainsi l’égalité réflexive et la transitivité associées aux comparaisons réelles ne tiennent plus.

 

Logique à trois états

L’apparition de NaN introduit une logique ternaire implicite dans les calculs numériques : vrai, faux, NaN.

Ceci demande un raisonnement adapté dans les preuves formelles ou analyses numériques.

*       Ne pas coder: if x == Nana

*       Mais: if isnan(x)

*       Ou même: if x != x (si x est différent de lui-même, il est NaN)

  

 

Propagation et clôture

Dans la plupart des situations, NaN est absorbant pour les opérations arithmétiques usuelles : toute opération binaire où un opérande est NaN renvoie NaN (propagation), ce qui permet d’isoler l’indétermination sans interrompre le calcul.

Contamination

NaN est viral. Dans la grande majorité des opérations arithmétiques, si un des opérandes est NaN, le résultat sera NaN.

 

Opérations

haut

 

Arithmétique et propagation

 

Les opérationa arithmétiques (Addition, multiplication, etc.), impliquant NaN renvoient NaN dans la pratique normale, empêchant des résultats incorrects qui passeraient inaperçus.

Les opérations produisant un résultat infini peuvent conduire à NaN si des formes indéterminées surviennent.

 

Comparaisons et tri

 

NaN n'est égal à rien, pas même à lui-même.

En programmation : isnan(x) est la façon correcte de tester l’indétermination.

Lorsqu’un tableau contenant NaN est trié, la position de NaN dépend de l’algorithme et de l’implémentation ; il faut décider explicitement comment traiter les NaN (les éliminer, les placer en fin, ou lever une erreur).

NaN est considéré comme non ordonnable.

 

Tests d’égalité

 

NaN n'obéit pas aux hypothèses habituelles sur l’égalité. Il peut conduire à des comportements inattendus dans les structures de données (ensembles, dictionnaires) si l’égalité est utilisée pour l’indexation.

 

Équations et méthodes numériques

 

En analyse numérique, NaN signale souvent échec de convergence, dépassement d’un domaine de définition, ou propagation d’une donnée corrompue.

Les méthodes robustes doivent détecter NaN tôt et fournir stratégies de récupération ou diagnostics (vérification d’existence de NaN dans résidus, vecteurs d’état, etc.).

 

Performance en informatique

En calcul automatisé, la propagation de NaN évite les branchements coûteux mais peut masquer l’origine de l’erreur.

L’utilisation des NaN ou des outils de débogage spécialisés permet une détection fine sans pénaliser l’exécution.

 

Interopérabilité entre langages

 

Les conventions IEEE 754 assurent une compatibilité raisonnable, mais des différences subsistent (ex. traitement des blocs de données, comportement de comparaison et conversion en texte).

Il faut documenter les choix de gestion des NaN dans les API.

 

Bilan

Bien compris et maîtrisé, le symbole NaN est un outil précieux pour la robustesse des calculs numériques et la qualité des systèmes logiciels.

 

NaN ne doit pas être vu comme un échec du système, mais plutôt une sécurité.

 

NaN est un concept essentiel en mathématiques et en informatique : il formalise l’idée d’une valeur numérique indéfinie ou invalide et permet de poursuivre les calculs sans interruption tout en signalant l’existence d’un problème.

 

Mathématiquement, NaN échappe aux propriétés classiques des nombres réels ; informatiquement, la norme IEEE 754 fournit une représentation standardisée.

 

Pour un usage sûr et robuste il est nécessaire de :

*       détecter et traiter explicitement les NaN avec des tests adaptés (isnan; en Python: math.isnan(x)) ;

*       décider d’une politique de gestion (exclusion, imputation, levée d’erreur) selon le contexte ;

*       documenter le comportement attendu lors des échanges entre systèmes.

 

 

Haut de page

 

Voir

*      InformatiqueIndex

*      MultimédiaIndex

*      Ordinateur

*      DicoNombre

*      DicoMot Math

Sites

*      NaN – Wikipedia

*      NaN (computing) – Wikipedia

Cette page

http://diconombre.fr/aNombre/TYPDENOM/NaN.htm