Sinon, le module Decimal permet de calculer avec le minimum d’approximation, évitant les erreurs d’arrondi :
En temps normal :
- Code: Tout sélectionner
>>> 0.1 + 0.1 + 0.1 - 0.3
5.551115123125783e-17 # WTF !!!
Avec le module Decimal
- Code: Tout sélectionner
>>> from decimal import Decimal
>>> Decimal("0.1") + Decimal("0.1") + Decimal("0.1") - Decimal("0.3")
Decimal('0.0')
Donc, pour tout ce qui a besoin d’être TRES précis, vous pouvez utiliser Decimal. Ou pas...
Car Decimal est lent : 100 fois plus lent qu’un float (environ).