Numérique et sciences informatiques (spécialité) · Première
Les nombres réels en flottants : cours de Première NSI
Publié le 6 novembre 2026 · Mis à jour le 6 novembre 2026 · Signaler une erreur
L'essentiel
- Un ordinateur ne peut pas représenter exactement tous les nombres réels : il en garde une approximation, d'aussi près qu'on veut mais jamais parfaite.1
- La virgule flottante écrit un nombre comme en notation scientifique, en binaire : un signe, une mantisse et un exposant.2
- L'ensemble des flottants est fini, et la mantisse a toujours le même nombre de chiffres significatifs : la précision relative est constante.2
- Un nombre comme 1,1 a un développement binaire infini, coupé à la fin : d'où des erreurs d'arrondi et des résultats parfois inattendus.3
- Conséquences en programmation : on ne compare pas deux flottants avec ==, on teste l'écart avec une tolérance, et l'ordre des additions peut changer le résultat.2
Introduction : un ordinateur ne connaît pas tous les réels
Tu as déjà vu en Python un calcul qui donne un résultat très légèrement faux, comme un 3.3000000000000003 là où tu attendais 3.3. Ce n'est pas un bogue du langage, et ce n'est pas non plus ta faute. C'est une conséquence directe de la façon dont la machine range les nombres à virgule dans sa mémoire.
Dans ce cours, tu vas comprendre cette représentation, appelée virgule flottante. Tu y retrouveras ce que tu sais déjà : l'écriture d'un entier en base 2 et la représentation des entiers relatifs. Il s'agit maintenant de ranger des nombres qui ne sont pas entiers.
Le fil conducteur est simple. La mémoire d'un ordinateur est finie : un nombre y occupe un nombre fixé de bits. Or il existe une infinité de nombres réels, et beaucoup d'entre eux ont une écriture infinie. Il faut donc accepter de ne garder qu'une approximation.
Le cours suit cet ordre : d'abord le problème (pourquoi approcher), puis la solution (la notation scientifique binaire), puis la conversion des parties décimales, et enfin les conséquences concrètes sur tes programmes.
Pourquoi il faut approcher les nombres réels
Un nombre réel peut avoir une infinité de chiffres après la virgule. Pense à en base 10. Une machine qui n'a qu'un nombre limité de cases mémoire ne peut pas tout écrire. Les documents de calcul scientifique le disent sans détour : il est impossible de représenter exactement tous les nombres réels.1
La bonne nouvelle, c'est qu'on peut approcher n'importe quel réel d'aussi près qu'on le souhaite.1 Cette idée est ancienne. Les nombres décimaux, c'est-à-dire les nombres qui s'écrivent avec un nombre fini de chiffres après la virgule, servent précisément à approcher n'importe quel réel et à calculer avec ces valeurs comme on le fait avec les entiers.3 Leur emploi s'est diffusé peu à peu : d'abord dans le monde arabe aux alentours du Xe siècle, puis en Europe jusqu'au XVIe siècle, où Viète et Stevin ont contribué à le populariser. Cette évolution a fini par déboucher sur le système métrique, adopté au moment de la Révolution française.3
Tout l'enjeu de ce cours est de savoir quelle approximation la machine choisit, avec combien de chiffres, et ce que cela change pour les calculs.
Une analogie utile : quand tu mesures une longueur avec une règle graduée en millimètres, tu ne peux pas annoncer une valeur plus fine que le millimètre. La règle impose une précision. L'ordinateur est dans la même situation, sauf que sa graduation est binaire et que son nombre de graduations est fixé à l'avance.
Virgule fixe et virgule flottante
Il existe deux grandes façons de ranger un nombre à virgule. La première est la virgule fixe : on décide une fois pour toutes combien de chiffres se trouvent après la virgule. La représentation en virgule fixe indique un nombre entier d'un sous-multiple de l'unité. Par exemple, est une façon commode d'écrire et millièmes, soit millièmes.2
La seconde est la virgule flottante. Il s'agit d'une méthode d'écriture très utilisée dans les ordinateurs, régie par la norme IEEE 754, qui équivaut à la notation scientifique en numération binaire.2 La virgule « flotte » : sa position n'est pas fixée, c'est un exposant qui la décale.
| Critère | Virgule fixe | Virgule flottante |
|---|---|---|
| Principe | Nombre entier d'un sous-multiple de l'unité | Notation scientifique en binaire |
| Position de la virgule | Fixée à l'avance | Décalée par l'exposant |
| Intervalle de valeurs | Plus restreint | Plus étendu à nombre de bits égal |
| Chiffres significatifs | Variables selon la taille du nombre | Toujours le même nombre |
Signe, mantisse, exposant : la notation scientifique binaire
Rappelle-toi la notation scientifique en base 10 : le nombre se lit comme un signe (), des chiffres significatifs () et une puissance de la base (). La virgule flottante fait exactement la même chose, mais en base 2.
Il reste une conséquence capitale : le nombre de bits réservés à la mantisse est limité. L'ensemble des flottants est un ensemble fini, dont le nombre d'éléments dépend de la base de représentation et du nombre de chiffres de la mantisse et de l'exposant.2 On le note parfois , où est la base et le nombre de chiffres de la mantisse, et bornant l'exposant.1
- Signe0 pour un nombre positif, 1 pour négatif
- MantisseChiffres significatifs, de la forme 1,b1b2b3…
- ExposantPuissance de 2 qui décale la virgule
Convertir une partie décimale en binaire
Pour la partie entière, tu connais déjà la méthode des divisions successives par 2. Pour la partie après la virgule, on fait l'inverse : on multiplie par 2 et on note la partie entière obtenue à chaque fois.
- Multiplier par 2Calculer 2f, où f est la partie fractionnaire
- Noter le chiffreLa partie entière de 2f vaut 0 ou 1
- Garder le resteNouveau f : la partie fractionnaire de 2f
- RecommencerArrêt si f = 0 ou si f déjà vu
Démonstration · Pourquoi 0,1 ne peut pas avoir d'écriture binaire finie
Supposons qu'on ait avec entier et entier naturel (c'est ce que signifierait une écriture binaire finie). Alors , donc serait un multiple de , donc de . Or les seuls diviseurs premiers de sont 2. C'est contradictoire. Donc n'a pas d'écriture binaire finie.
Erreurs d'arrondi : ce qui se passe vraiment en Python
Que fait la machine quand l'écriture binaire est infinie ? Elle coupe le développement après le nombre de chiffres que sa mantisse peut contenir, puis arrondit. Dans le format binaire double précision de la norme IEEE 754, qui est le plus courant, le codage de coupe le développement à 52 chiffres binaires.3 L'erreur ainsi commise est une erreur d'arrondi.
Cette erreur est minuscule, mais elle existe, et elle peut produire des affichages inattendus, par exemple quand on calcule en Python.3 Les langages de programmation acceptent et affichent les nombres sous forme décimale, mais la plupart du temps ils calculent avec des flottants binaires, qui sont des approximations.3 Ce que tu tapes (1.1) et ce que la machine stocke ne sont donc pas tout à fait le même nombre.
Une autre conséquence concerne l'addition. Dans l'ensemble des réels, additionner ou donne le même résultat. Pour les flottants, ce n'est plus vrai : l'addition n'est pas associative, et l'ordre des calculs a donc de l'importance.2
Bilan : précision, intervalle et bonnes pratiques
Résumons ce que la représentation en flottants apporte et ce qu'elle coûte.
Flottants
- Structure
- Signe
- Mantisse
- Exposant
- Avantages
- Grand intervalle
- Précision constante
- Limites
- Ensemble fini
- Arrondis
- Non associatif
- Bonnes pratiques
- Tolérance
- Entiers exacts
- Ordre des calculs
Exercices corrigés
Exercice 1 Lire un nombre binaire à virgule
Donne la valeur décimale du nombre binaire .
Indice 1
Chaque chiffre après la virgule a pour poids , , , , dans cet ordre.
Voir la correction pas à pas
On repère les poids : le premier chiffre vaut , le deuxième , le troisième , le quatrième .
Les chiffres de sont 1, 1, 0, 1. On garde les poids des chiffres égaux à 1 : , et .
On additionne : .
On convertit : .
Le nombre vaut en décimal. Il est exactement représentable puisque son dénominateur est une puissance de 2.
Exercice 2 Trouver l'exposant d'un nombre
On écrit sous la forme (mantisse comprise entre 1 et 2). Quelle est la valeur de l'exposant ? Donne ensuite la mantisse.
Indice 1
Cherche la plus grande puissance de 2 qui ne dépasse pas .
Indice 2
La mantisse est .
Voir la correction pas à pas
On écrit les puissances de 2 : , , .
On encadre : , soit . La plus grande puissance de 2 inférieure à est , donc .
On calcule la mantisse : .
On convertit en binaire : , donc . On retrouve l'écriture .
L'exposant vaut et la mantisse vaut , soit en binaire.
Exercice 3 Mesurer une erreur d'arrondi
On considère un format jouet qui garde, pour la mantisse , 4 chiffres binaires après la virgule, les suivants étant supprimés (troncature). On y stocke le nombre , qui s'écrit avec une mantisse décimale de .
Calcule l'erreur , où est la valeur réellement stockée.
Indice 1
Convertis en binaire avec la méthode des multiplications par 2 sur .
Indice 2
Une fois la mantisse tronquée convertie en fraction, multiplie-la par .
Voir la correction pas à pas
On convertit : (chiffre 1), (chiffre 0), (chiffre 0), (chiffre 1). On retrouve ensuite et les chiffres se répètent : .
On tronque à 4 chiffres après la virgule : la mantisse stockée est .
La valeur stockée est .
L'erreur est .
Le format jouet stocke au lieu de , soit une erreur de par défaut. Avec plus de chiffres dans la mantisse, l'erreur diminue mais ne s'annule jamais, car l'écriture de est infinie.
Quiz
8 questions · correction immédiate · ton score reste sur ton appareil.
-
La mémoire réserve un nombre fixé de bits à chaque nombre, alors que beaucoup de réels ont une infinité de chiffres : on ne garde qu'une approximation.1 La proposition « seulement des entiers » est fausse, car les flottants existent précisément pour approcher les non-entiers. Le point sur la virgule est faux aussi : on peut très bien écrire .
-
La mantisse commence par le premier chiffre non nul.1 En base 2, ce chiffre ne peut être que 1, d'où une mantisse entre 1 et 2. Dire qu'elle commence par 0 contredit la définition d'un premier chiffre non nul.
-
et ont un dénominateur qui est une puissance de 2 : écriture finie. et ont au dénominateur un facteur 5, donc une écriture binaire infinie périodique. Tenter de les stocker oblige à couper le développement.3
-
On additionne les poids des chiffres égaux à 1 : . L'erreur tentante est d'oublier le poids du troisième rang ou de lire « 1011 » comme l'entier onze.
-
C'est faux : les erreurs d'arrondi peuvent rendre deux flottants légèrement différents alors que les résultats mathématiques sont égaux. Les valeurs stockées sont des approximations.3 On compare plutôt l'écart
abs(a - b)à une tolérance. -
C'est faux : contrairement à ce qui se passe dans les réels, l'addition en virgule flottante n'est pas associative, d'où l'importance de l'ordre de calcul.2 L'erreur vient de l'habitude de calculer avec des réels exacts.
-
La représentation en virgule flottante gère un intervalle plus important avec le même nombre de bits et préserve la précision grâce à une mantisse de longueur constante.2 Les autres propositions sont fausses : l'arrondi subsiste (par exemple pour , coupé à 52 chiffres binaires dans le format double précision3) et rien n'oblige les flottants à être plus rapides.
Les questions qu'on se pose
Pourquoi 0,1 + 0,2 ne donne-t-il pas exactement 0,3 en Python ?
Parce que ni ni n'ont d'écriture binaire finie : la machine stocke deux approximations, chacune coupée après un nombre fixé de chiffres binaires.3 Leur somme porte la trace de ces deux arrondis, et le résultat peut différer très légèrement de la valeur stockée pour , qui est elle aussi une approximation. Ce n'est pas un bogue de Python, mais la conséquence du codage binaire des décimaux.
À quoi sert d'avoir un exposant ?
L'exposant décale la virgule, comme le fait en notation scientifique. Grâce à lui, avec le même nombre de bits, on peut écrire à la fois de très petits et de très grands nombres.2 Sans exposant (virgule fixe), il faudrait choisir à l'avance une précision unique, donc sacrifier soit les petites valeurs, soit les grandes.
Comment savoir si un nombre décimal est exactement représentable en binaire ?
Écris-le sous forme de fraction irréductible. S'il peut s'écrire , c'est-à-dire si le dénominateur est une puissance de 2, son écriture binaire est finie, donc il est représentable exactement tant que sa mantisse tient dans les bits disponibles. Exemple : est exact, alors que ne l'est pas.
Faut-il toujours se méfier des flottants ?
Non. Pour la plupart des calculs scientifiques, l'erreur d'arrondi est très petite devant les incertitudes des données elles-mêmes, et les flottants sont efficaces. Il faut surtout éviter deux pièges : comparer avec == des résultats de calculs, et utiliser des flottants pour des quantités qui doivent être exactes (comptes en centimes, par exemple, qu'on range plutôt dans des entiers).
Est-ce que ce chapitre tombe au bac de NSI ?
La représentation des nombres en machine fait partie des notions de base de la spécialité. Des questions peuvent demander de convertir un nombre en binaire, de reconnaître qu'une écriture est infinie, ou d'expliquer pourquoi un test d'égalité entre flottants échoue. Savoir justifier par la forme est une réponse solide.
Sources
- Arithmétique des ordinateurs - Représentation en virgule flottante, CNRS (Calcul). Consulté le 6 novembre 2026.
- Virgule flottante, Wikipédia. Consulté le 6 novembre 2026.
- Nombre décimal, Wikipédia. Consulté le 6 novembre 2026.
Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.