objectif
Éviter les erreurs flottantes en manipulant des rationnels.
code minimal
from fractions import Fraction
x = Fraction(1, 3) + Fraction(1, 6)
print(x == Fraction(1,2)) # attendu: True
utilisation
from fractions import Fraction
y = Fraction("0.1") + Fraction("0.2")
print(y == Fraction("0.3"))
variante(s) utile(s)
from fractions import Fraction
print(Fraction(0.1).limit_denominator(1000).denominator <= 1000)
notes
- Fraction(“0.1”) interprète la chaîne exactement (pas le float binaire).
- limit_denominator pour approx rationnelle d’un float.