我可以从python中的数字中得到一小部分吗?

时间:2013-02-23 17:55:08

标签: python fractions

我正在进行一些计算,在输出之前我想将数字更改为分数。 例如,0.25将变为1/4,在两个数字的列表中[1,4]。

1 个答案:

答案 0 :(得分:7)

使用fractions module执行此操作:

>>> import fractions
>>> fractions.Fraction(0.25)
Fraction(1, 4)
>>> f = fractions.Fraction(0.25)
>>> f.numerator
1
>>> f.denominator
4

对于任意浮点数作为输入,您确实希望使用.limit_denominator() method来限制分数以获得浮点数的近似值:

>>> from math import pi, cos
>>> fractions.Fraction(cos(pi/3))
Fraction(4503599627370497, 9007199254740992)
>>> fractions.Fraction(cos(pi/3)).limit_denominator()
Fraction(1, 2)