22-06-2024, 06:29 PM
Ecriture décimale des nombres en Mathématiques
En Mathématiques (et dans la vie de tous les jours...), pour écrire les nombres,
nous utilisons 10 chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 et 10
Les nombres décimaux peuvent s'écrire avec un nombre fini de chiffres après la virgule
Exemples :
• 615/5 peut s'écrire 123 ou bien 123,0
(c'est un nombre entier, cas particulier de nombre décimal : voir ici...)
• 5/8 peut s'écrire 0,625
• 1/10 peut s'écrire 0,1
Les nombres non décimaux ont des décimales infinies
Ils ont une infinité de chiffres après la virgule
On ne peut donc pas les écrire exactement
Exemples :
• 1/3 --> 0,333333333333333.......................
• 5/7 --> 0,714285714285714285.......................
(1/3 et 5/7 sont des nombres périodiques)
• π --> 3,1415926535897.......................
• √2 --> 1,414213562.......................
On peut seulement écrire une valeur décimale approchée
• 1/3 ≃ 0,333333333333333
• 5/7 ≃ 0,714285714285714285
• π ≃ 3,1415926535897
• √2 ≃ 1,414213562
En Mathématiques, les nombres décimaux sont écrit en base 10 (ou en décimal)
Exemples :
Ecriture binaire des nombres en Informatique
En Informatique, nous n'utilisons que 2 chiffres : 0 et 1
En Informatique, les nombres sont écrit en base 2 (ou en binaire)
Exemples :
0,1 ne peut pas s'écrire en binaire 
0,1 est le nombre périodique suivant :
0.0001100110011001100110011001100110011001100110011...
Et là est tout le problème..!
Voyez plutôt...
![[Image: pytarrondi0.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytarrondi0.png)
Autre exemple : l'opération 0,6 + 0,7 ne pose aucun problème en Mathématiques (résultat 1,3)
Avec Python, 0,6 + 0,7 = 1,2999999999999998
En effet, 0,6 et 0,7 ne peuvent pas s'écrire en binaire
Ces nombres vont donc être codés par des approximations,
et quand on fait des opérations avec des approximations...
on obtient des résultats... encore plus approximatifs..!
Les dernières versions de Python ont progressé pour pallier au mieux à ces "problèmes"
(peut-être qu'avec votre version, 0,6 + 0,7 est bien égal à 1,3)
mais en, général, les résultats sont approchés, voire très approchées si on fait des opérations multiples
![[Image: pytarrondi1.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytarrondi1.png)
(voir la doc Python sur la représentation des nombres en virgule flottante ici)
En Mathématiques (et dans la vie de tous les jours...), pour écrire les nombres,
nous utilisons 10 chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 et 10
Les nombres décimaux peuvent s'écrire avec un nombre fini de chiffres après la virgule
Exemples :
• 615/5 peut s'écrire 123 ou bien 123,0
(c'est un nombre entier, cas particulier de nombre décimal : voir ici...)
• 5/8 peut s'écrire 0,625
• 1/10 peut s'écrire 0,1
Les nombres non décimaux ont des décimales infinies
Ils ont une infinité de chiffres après la virgule
On ne peut donc pas les écrire exactement
Exemples :
• 1/3 --> 0,333333333333333.......................
• 5/7 --> 0,714285714285714285.......................
(1/3 et 5/7 sont des nombres périodiques)
• π --> 3,1415926535897.......................
• √2 --> 1,414213562.......................
On peut seulement écrire une valeur décimale approchée
• 1/3 ≃ 0,333333333333333
• 5/7 ≃ 0,714285714285714285
• π ≃ 3,1415926535897
• √2 ≃ 1,414213562
En Mathématiques, les nombres décimaux sont écrit en base 10 (ou en décimal)
Exemples :
123 | 0,625 | 0,1 |
100 + 20 + 3 1 x 102 + 2 x 101 + 3 x 100 |
0,6 + 0,02 + 0,005 6 x 10-1 + 2 x 10-2 + 5 x 10-3 |
0,1 1 x 10-1 |
Ecriture binaire des nombres en Informatique
En Informatique, nous n'utilisons que 2 chiffres : 0 et 1

En Informatique, les nombres sont écrit en base 2 (ou en binaire)
Exemples :
123 | 0,625 | 0,1 |
64 + 32 +16 + 8 + 2 + 1 1 x 26+ 1 x 25 + 1 x 24 + 1 x 23 + 0 x 22 + 1 x 21+ 1 x 20 |
1 x 0,5 + 0 x 0,25 + 1 x 0,125 1 x 2-1 + 0 x 2-2 + 1 x 2-3 |
? |
1111011 en binaire | 0.101 en binaire | ? |


0,1 est le nombre périodique suivant :
0.0001100110011001100110011001100110011001100110011...

Et là est tout le problème..!
Voyez plutôt...

![[Image: pytarrondi0.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytarrondi0.png)
Autre exemple : l'opération 0,6 + 0,7 ne pose aucun problème en Mathématiques (résultat 1,3)
Avec Python, 0,6 + 0,7 = 1,2999999999999998

En effet, 0,6 et 0,7 ne peuvent pas s'écrire en binaire
Ces nombres vont donc être codés par des approximations,
et quand on fait des opérations avec des approximations...
on obtient des résultats... encore plus approximatifs..!
Les dernières versions de Python ont progressé pour pallier au mieux à ces "problèmes"
(peut-être qu'avec votre version, 0,6 + 0,7 est bien égal à 1,3)
mais en, général, les résultats sont approchés, voire très approchées si on fait des opérations multiples

La façon la plus simple, en général, de corriger l'affichage est d'utiliser les fonctions floor, ceil ou round (voir ici) |
![[Image: pytarrondi1.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytarrondi1.png)
(voir la doc Python sur la représentation des nombres en virgule flottante ici)