Python,drôle d'animal

Vianneyp Messages postés 82 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2010 - 28 oct. 2008 à 17:47
 Utilisateur anonyme - 28 oct. 2008 à 18:04
Bonjour,
Je programme en vb/vb.Net mais j'ai tout récemment (pas plus tard que ce matin enfaite :-) ) décider de me mettre a python avec un tutoriel vraiment bien fait.
Même si je sens que je vais mettre du temps a me faire a l'indentation stricte et non automatisée,ya pas mal de trucs sympa comme l'affectation multiple qui fait gagner du temps et de la place.
Mais voila il y a un "truc" que je comprend pas,peut étre pourrez vous m'éclairer :
1.6 * 2 => 3.2000000000000002
3.2/2 => 1.6000000000000001
1.7 * 2 => 3.3999999999999999
D'un point de vue mathématique c'est plutôt...bizarre non ?
Bon d'accord c'est un type a virgule flottante,mais le single de vb me donnai pas de résultats approximatifs lorsque ils était exactes.
Enfin,je suppose qu'il y a une explication logique a tout ça ^^.
PS : j'utilise la version 2.6.

1 réponse

Utilisateur anonyme
28 oct. 2008 à 18:04
Bonsoir,

Le float est un arrondi et son affichage est aussi arrondi. Lorsqu'on l'enregistre dans un fichier on fait une approximation de la mémoire et on perd un peu de la vraie valeur des nombres.

Imagine, tu pèses 80 kg, mais en fait tu sais que tu pèses 80,.......... kg c'est bien une approximation.

Si tu veux des valeurs exactes, tu peux utiliser le module decimal

http://python.org/doc/2.4/whatsnew/node9.html

Bon courage
0
Rejoignez-nous