Numérique et sciences informatiques (spécialité) · Première
Nombres flottants : exercices corrigés de Première NSI
Publié le 6 novembre 2026 · Mis à jour le 6 novembre 2026 · Signaler une erreur
L'essentiel
- Un flottant s'écrit comme une notation scientifique en binaire : une mantisse et un exposant 2.
- L'ensemble des flottants est fini : la plupart des réels ne sont représentés qu'approximativement 12.
- Un nombre comme 1,1 a un développement binaire infini, coupé au stockage : d'où des erreurs d'arrondi 3.
- L'addition de flottants n'est pas associative : l'ordre des calculs compte 2.
Comment utiliser ces exercices
Ces exercices suivent la progression du cours : d'abord l'écriture d'un nombre en binaire, puis la notation « mantisse × 2^exposant », enfin les erreurs que cette représentation provoque. Cherche chaque exercice sur papier avant d'ouvrir les indices, puis compare avec la correction pas à pas.
Les exercices
Exercice 1 Virgule fixe : compter en millièmes
Dans une représentation en virgule fixe, on stocke un entier qui compte des millièmes. Quel entier faut-il stocker pour représenter le nombre ? Explique ensuite pourquoi cette méthode limite l'intervalle des valeurs possibles avec un nombre de bits donné, par rapport à la virgule flottante.
Indice 1
Un millième vaut : combien de millièmes y a-t-il dans ?
Indice 2
Décompose en unités et millièmes.
Voir la correction pas à pas
Une unité contient 1000 millièmes, donc unités valent millièmes.
On ajoute les millièmes : . C'est l'entier à stocker, exactement comme « 1234,567 » correspond à 1234567 millièmes 2.
En virgule fixe, le pas entre deux valeurs est toujours le même (un millième). Avec le même nombre de bits, la virgule flottante peut couvrir un intervalle numérique plus large 2.
La virgule fixe est simple mais rigide : le pas est imposé. La virgule flottante adapte le pas à la taille du nombre grâce à l'exposant.
Exercice 2 Lire un nombre binaire à virgule
Donne l'écriture décimale du nombre binaire .
Indice 1
Avant la virgule, les poids sont , , de gauche à droite pour .
Indice 2
Après la virgule, les poids sont , , .
Voir la correction pas à pas
Partie entière : .
Partie fractionnaire : .
On additionne : .
Un nombre binaire à virgule se lit comme un nombre décimal, avec des puissances de 2 (positives avant la virgule, négatives après).
Exercice 3 Mantisse et exposant
Le nombre binaire doit être écrit sous la forme , comme une notation scientifique en base 2 2.
- Quelle est la mantisse et quel est l'exposant ?
- Quelle est la valeur décimale du nombre ?
Indice 1
Déplace la virgule jusqu'à ce qu'il ne reste qu'un seul chiffre non nul devant. Compte de combien de rangs tu l'as déplacée.
Indice 2
Pour la valeur, lis directement.
Voir la correction pas à pas
On déplace la virgule de 3 rangs vers la gauche : .
La mantisse est donc et l'exposant vaut . La mantisse commence par un chiffre non nul, ici 1 2.
Valeur : et . Le nombre vaut .
Vérification : et .
Déplacer la virgule de rangs vers la gauche revient à multiplier par , comme on multiplie par en notation scientifique décimale.
Exercice 4 Pourquoi 0,1 n'est pas exact
- Écris les 8 premiers chiffres après la virgule de en binaire, avec la méthode des multiplications par 2.
- On coupe l'écriture après ces 8 chiffres. Quelle valeur décimale le nombre tronqué représente-t-il ?
- Calcule l'erreur commise par rapport à .
- Fais le lien avec le cas du nombre évoqué dans la documentation 3.
Indice 1
Pars de , multiplie par 2 et note la partie entière. Tu retrouveras vite un motif qui se répète.
Indice 2
Le tronqué vaut .
Voir la correction pas à pas
(chiffre 0) ; (0) ; (0) ; (1, reste ) ; (1, reste ) ; (0) ; (0) ; (1).
Les 8 premiers chiffres sont donc . Le reste puis revient : le motif se répète à l'infini.
Valeur tronquée : .
Erreur : .
Pour , la documentation indique que son écriture binaire est infinie : 3. Le format double précision coupe ce développement à 52 chiffres binaires, ce qui crée une erreur d'arrondi 3. Le principe est le même qu'ici, avec une erreur bien plus petite.
Un décimal « simple » comme a un développement binaire infini. L'ordinateur n'en garde qu'une partie, donc il stocke une valeur voisine, pas la valeur exacte.
Exercice 5 Un petit format de flottants : le plus grand
On étudie un format imaginaire. Les nombres positifs représentables sont ceux de la forme , où sont des chiffres binaires et où l'exposant est un entier compris entre et (inclus).
- Combien de nombres positifs différents ce format permet-il de représenter ?
- Quel est le plus grand ? Donne sa valeur décimale.
Indice 1
Compte les choix possibles pour la mantisse, puis ceux de l'exposant.
Indice 2
Le plus grand correspond à la mantisse maximale et à l'exposant maximal.
Voir la correction pas à pas
Chaque chiffre a 2 choix, donc il y a mantisses. Il y a 4 exposants (). Au total : nombres, ce qui illustre que l'ensemble des flottants est fini 2.
Le plus grand a la mantisse .
On la multiplie par : .
Avec un nombre fixe de bits, il n'existe qu'un nombre fini de valeurs, donc un plus grand nombre et un plus petit nombre positif. Tout calcul qui dépasse ces bornes sort du format.
Exercice 6 Écart entre deux flottants consécutifs
On reprend le format de l'exercice précédent. Le nombre s'écrit .
- Quel est le flottant suivant dans ce format ? Quel est l'écart entre les deux ?
- Par quel flottant le nombre réel sera-t-il remplacé, si l'on prend le plus proche ?
Indice 1
Pour passer au flottant suivant, ajoute 1 au dernier chiffre de la mantisse.
Indice 2
L'écart vaut fois le dernier poids de la mantisse, c'est-à-dire .
Voir la correction pas à pas
Le suivant de est , soit .
L'écart est , ce qui vaut aussi .
Le réel se trouve entre et . Sa distance à est , à elle est .
Il est donc remplacé par . Un flottant représente en fait un ensemble de réels voisins, dont les règles d'arrondi fixent les limites 2.
Plus l'exposant est grand, plus l'écart entre deux flottants consécutifs est grand. La précision relative, elle, reste à peu près la même, puisque la mantisse garde toujours le même nombre de chiffres significatifs 2.
Exercice 7 L'étrange résultat de 3 × 1,1
Un élève tape en Python le calcul 3 * 1.1 et s'attend à obtenir exactement . Il constate un affichage surprenant.
- Explique pourquoi le calcul peut ne pas donner exactement .
- Pourquoi l'affichage de
1.1semble-t-il pourtant correct ?
Indice 1
Pense à la façon dont 1.1 est stocké.
Indice 2
Les langages lisent et écrivent les nombres en décimal, mais calculent autrement.
Voir la correction pas à pas
Le nombre s'écrit en binaire , avec une infinité de chiffres 3.
Le format binaire double précision, le plus courant, coupe ce développement à 52 chiffres binaires 3. Python stocke donc une valeur très proche de , mais pas égale.
Le produit par 3 multiplie cette petite erreur et subit un nouvel arrondi. Le résultat peut alors différer de : la documentation parle de résultats parfois surprenants pour ce calcul 3.
À l'entrée et à la sortie, les langages manipulent des nombres sous forme décimale, mais les calculs passent par des flottants binaires qui sont des approximations 3. C'est pourquoi
1.1s'affiche correctement alors que la valeur stockée n'est pas exactement .
Le calcul n'est pas faux : il est effectué sur des approximations. Retiens qu'un test d'égalité entre deux résultats de calculs flottants est risqué.
Exercice 8 Quand l'ordre des additions change le résultat
On utilise un format imaginaire où les nombres positifs s'écrivent avec entier de à . Après chaque opération, le résultat exact est remplacé par le flottant le plus proche. On pose , et (ces trois nombres sont représentables).
- Calcule dans ce format.
- Calcule dans ce format.
- Quelle est la différence entre les deux résultats ? Quelle propriété de l'addition est mise en défaut ?
Indice 1
Entre et , l'exposant vaut : quel est l'écart entre deux flottants consécutifs ?
Indice 2
Pour , regarde de quel entier est le plus proche.
Voir la correction pas à pas
Pour , l'écart entre deux flottants vaut . Entre et , les flottants sont donc les entiers .
, plus proche de que de : le résultat est arrondi à . Ensuite est de nouveau arrondi à . Donc .
, qui s'écrit : il est représentable exactement. Puis , plus proche de (distance ) que de (distance ). Donc .
La différence vaut . L'associativité de l'addition est mise en défaut, comme le signale la documentation sur les flottants 2.
Dans l'ensemble des réels, toujours. Pour les flottants, l'ordre de calcul a de l'importance 2 : additionner d'abord les petits nombres entre eux limite les pertes.
Exercice 9 Comparer deux flottants avec une tolérance
Une fonction doit dire si deux nombres flottants a et b sont « égaux » malgré les erreurs d'arrondi.
- Explique pourquoi le test
a == best mal adapté après des calculs. - Écris en Python une fonction
presque_egaux(a, b, eps)qui renvoie un booléen, avec une tolérance absolueeps. - Dans quel cas une tolérance absolue est-elle mal adaptée ?
Indice 1
Pense à la valeur absolue de la différence a - b.
Indice 2
Imagine des nombres de l'ordre de dix milliards, puis de l'ordre de un millionième.
Voir la correction pas à pas
Les calculs flottants travaillent sur des valeurs approchées 2. Deux calculs qui donnent le même résultat mathématique peuvent différer d'un tout petit écart, donc
a == bpeut renvoyer faux à tort.On teste la proximité :
def presque_egaux(a, b, eps): return abs(a - b) <= eps.Une valeur comme
eps = 1e-9convient pour des nombres proches de 1. Pour des nombres de l'ordre de dix milliards, l'écart entre deux flottants consécutifs (environ ) est bien plus grand que cette valeur : le test revient alors presque à une égalité stricte. Pour des nombres minuscules, la tolérance serait trop large. On préfère alors une tolérance relative, par exempleabs(a - b) <= eps * max(abs(a), abs(b)).
On ne teste pas l'égalité exacte de deux résultats de calculs flottants : on teste qu'ils sont proches, avec une tolérance adaptée à leur taille.
Les questions qu'on se pose
Pourquoi l'ordinateur ne peut-il pas représenter tous les nombres réels ?
Comment savoir si un nombre décimal sera exact en binaire ?
Il est exact seulement s'il s'écrit comme une somme finie de puissances de 2, comme . Des nombres comme ont une écriture binaire infinie, périodique, et sont donc arrondis au stockage 3. Pour t'en assurer, applique la méthode des multiplications par 2 : si le reste ne tombe jamais à 0, l'écriture est infinie.
Est-ce que ces erreurs peuvent vraiment poser problème ?
Oui, dès qu'on compare des résultats avec == ou qu'on additionne beaucoup de termes de tailles très différentes, puisque l'addition n'est pas associative sur les flottants 2. D'où les bonnes pratiques de l'exercice sur la tolérance : comparer avec un écart admis plutôt qu'avec une égalité stricte.
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.