Bonjour à tous, j’ai remarqué un bug sur ma calculatrice graphique en plein cours de maths sur Python.
J’ai montré au prof et il ne comprenait pas pourquoi ça faisait ça. Et ça fait pareil avec toutes les applications Python en ligne sur internet.
Je vous explique : quand on additionne plusieurs fois 0,1 au bout d’un moment on tombe sur des décimales gigantesques.
C’est quand on additionne 7 fois 0,1 qu’on tombe sur un résultat pas juste du tout :
Au lieu de trouver 0,8 on trouve 0,799999999999999999999…..
Et ça le fait à tous les résultats à partir de 20 fois que ça le fait à tous les résultats.
Vous pouvez rester en écrivant ce programme où « x » est le résultat des additions de 0,1 et « y » le nombre de fois qu’on a additionné, « •• » représente l’indentation :
x=0,1
a=0
while a<30:
••x=x+0,1
••a=a+1
••print(x)
••print(a)
Ce programme affichera tous les résultats avec en dessous le nombre de fois qu’on a additionné.
Est-ce que vous savez pourquoi il y a ce bug et à quoi il est dû ?
J’ai montré au prof et il ne comprenait pas pourquoi ça faisait ça. Et ça fait pareil avec toutes les applications Python en ligne sur internet.
Je vous explique : quand on additionne plusieurs fois 0,1 au bout d’un moment on tombe sur des décimales gigantesques.
C’est quand on additionne 7 fois 0,1 qu’on tombe sur un résultat pas juste du tout :
Au lieu de trouver 0,8 on trouve 0,799999999999999999999…..
Et ça le fait à tous les résultats à partir de 20 fois que ça le fait à tous les résultats.
Vous pouvez rester en écrivant ce programme où « x » est le résultat des additions de 0,1 et « y » le nombre de fois qu’on a additionné, « •• » représente l’indentation :
x=0,1
a=0
while a<30:
••x=x+0,1
••a=a+1
••print(x)
••print(a)
Ce programme affichera tous les résultats avec en dessous le nombre de fois qu’on a additionné.
Est-ce que vous savez pourquoi il y a ce bug et à quoi il est dû ?