我正在做一些计算,在输出之前我想将数字更改为分数。例如 0.25 会变成 1/4,在两个数字 [1, 4] 的列表中。
问问题
471 次
1 回答
8
使用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)
于 2013-02-23T17:56:56.070 回答