Python vs Calculatrice
Bonjour,
Le calcul suivant sur Python 0.3 - 0.1 - 0.2 me renvoie -2.7755575615628914e-17et non pas 0.
Je sais qu'il s'agit d'un problème de représentation des nombres à virgule car Python compte en base 2.
En revanche, je me demandais pourquoi ce problème n’apparaissait pas sur ma calculatrice scientifique (ou n'importe quelle calculatrice d'ailleurs) ?
Une calculatrice fait elle ses calculs en base différente de 2 ?
Si il s'agit d'un simple problème d'arrondi, pourquoi Python n'en fait il pas de même que que ma calculatrice, car celle-ci bien que moins performante que Python m'a quand même rendu un résultat juste.
Peut-on dire que ma calculatrice est plus performante que Python ?
Merci
Le calcul suivant sur Python 0.3 - 0.1 - 0.2 me renvoie -2.7755575615628914e-17et non pas 0.
Je sais qu'il s'agit d'un problème de représentation des nombres à virgule car Python compte en base 2.
En revanche, je me demandais pourquoi ce problème n’apparaissait pas sur ma calculatrice scientifique (ou n'importe quelle calculatrice d'ailleurs) ?
Une calculatrice fait elle ses calculs en base différente de 2 ?
Si il s'agit d'un simple problème d'arrondi, pourquoi Python n'en fait il pas de même que que ma calculatrice, car celle-ci bien que moins performante que Python m'a quand même rendu un résultat juste.
Peut-on dire que ma calculatrice est plus performante que Python ?
Merci
Réponses
-
Quel calcul suivant ?
-
Ta calculatrice est plus performante que Python si tu veux calculer 0.3-0.1-0.2 mais moins que Python si tu veux calculer 21000.Algebraic symbols are used when you do not know what you are talking about.
-- Schnoebelen, Philippe -
Python 2.7.15rc1 (default, Apr 15 2018, 21:51:34) [GCC 7.3.0] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> 3/10-1/10-2/10 0
-
Pas en Python 3 :
>>> 3/10-1/10-2/10 -2.7755575615628914e-17
Algebraic symbols are used when you do not know what you are talking about.
-- Schnoebelen, Philippe -
@GaBuZoMeu : Python2 donne la bonne réponse mais c'est quand même une erreur.
Python 2.7.12 (default, Dec 4 2017, 14:50:18) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> 3/10-1/10-2/10 0 >>> 3/10 0 >>> 1/10 0 >>> 2/10 0
PSPython 2.7.12 (default, Dec 4 2017, 14:50:18) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> .3-.1-.2 -2.7755575615628914e-17
-
Mon exemple était mal choisi, parce que la barre de fraction est la division entière (sans reste) en python 2. Si on veut un calcul exact en python
>>> from fractions import * >>> Fraction(3,10)-Fraction(1,10)-Fraction(2,10) Fraction(0, 1)
Moi je trouve plutôt ça bien de pouvoir faire la différence entre calcul en flottants et calcul exact en rationnels.
En Sage : -
Ça ne répond pas à la question mais on peut aussi faire le calcul avec le module decimal :
from decimal import Decimal print(Decimal("0.3")-Decimal("0.2")-Decimal("0.1")) print(0.3-0.2-0.1)
qui affiche0.0 -2.77555756156e-17
-
Merci pour vos réponses
Je pense comme l'a dit Skilveg que la réponse se trouve du côté du DCB "Décimal Codé Binaire" -
Peut-être cette page de blog apporte-t-elle des infos complémentaires :
Decimal Floating Point in Scientific Calculators
Connectez-vous ou Inscrivez-vous pour répondre.
Bonjour!
Catégories
- 163.2K Toutes les catégories
- 9 Collège/Lycée
- 21.9K Algèbre
- 37.1K Analyse
- 6.2K Arithmétique
- 53 Catégories et structures
- 1K Combinatoire et Graphes
- 11 Sciences des données
- 5K Concours et Examens
- 11 CultureMath
- 47 Enseignement à distance
- 2.9K Fondements et Logique
- 10.3K Géométrie
- 65 Géométrie différentielle
- 1.1K Histoire des Mathématiques
- 68 Informatique théorique
- 3.8K LaTeX
- 39K Les-mathématiques
- 3.5K Livres, articles, revues, (...)
- 2.7K Logiciels pour les mathématiques
- 24 Mathématiques et finance
- 314 Mathématiques et Physique
- 4.9K Mathématiques et Société
- 3.3K Pédagogie, enseignement, orientation
- 10K Probabilités, théorie de la mesure
- 773 Shtam
- 4.2K Statistiques
- 3.7K Topologie
- 1.4K Vie du Forum et de ses membres