все Python 3Числа и математикапонятие
fractions.Fraction
fractions
Представляет рациональные числа точно как пару целых (числитель/знаменатель). Без погрешностей float.
Синтаксис
from fractions import Fraction
Fraction(1, 3)
Fraction(0.1) добросовестно берёт двоичное приближение float и превращается в монстра 3602879701896397/36028797018963968 — из десятичной записи стройте через строку Fraction('0.1') или пару целых. Дробь неизменяема и сокращается сразу при создании, а вот в арифметике с float результат становится float, и вся точность теряется; после длинных цепочек сложений знаменатели разрастаются, и привести дробь к обозримому виду помогает limit_denominator().
Примеры
from fractions import Fraction
Fraction(1, 3) + Fraction(1, 6) # → Fraction(1, 2)
Fraction('0.1') + Fraction('0.2') # → Fraction(3, 10)
Fraction(1, 3) * 3 # → Fraction(1, 1)
Fraction(22, 7) # → Fraction(22, 7)
float(Fraction(1, 3)) # → 0.3333333333333333
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности