← retour aux snippets

fractions.Fraction: calculs rationnels exacts

Éviter les erreurs flottantes en manipulant des rationnels.

python number #fractions#rational

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.