Могу ли я получить дробь из числа в Python?
Я делаю некоторые вычисления и перед выводом хочу изменить число на дробь. Например, 0,25 станет 1/4, что хорошо в списке из двух чисел [1, 4].
1 ответ
Использовать fractions
Модуль для этого:
>>> import fractions
>>> fractions.Fraction(0.25)
Fraction(1, 4)
>>> f = fractions.Fraction(0.25)
>>> f.numerator
1
>>> f.denominator
4
Для произвольных операций с плавающей точкой в качестве входных данных вы действительно хотите использовать .limit_denominator()
метод, чтобы ограничить ваши дроби в здравом приближении числа с плавающей запятой:
>>> from math import pi, cos
>>> fractions.Fraction(cos(pi/3))
Fraction(4503599627370497, 9007199254740992)
>>> fractions.Fraction(cos(pi/3)).limit_denominator()
Fraction(1, 2)