3.8 分数�算¶

问题¶

你进入时间机器,�然�现你正在��学家庭作业,并涉�到分数计算问题。 或者你�能需�写代�去计算在你的木工工厂中的测�值。

解决方案¶

fractions 模��以被用�执行包�分数的数学�算。比如:

>>> from fractions import Fraction
>>> a = Fraction(5, 4)
>>> b = Fraction(7, 16)
>>> print(a + b)
27/16
>>> print(a * b)
35/64

>>> # Getting numerator/denominator
>>> c = a * b
>>> c.numerator
35
>>> c.denominator
64

>>> # Converting to a float
>>> float(c)
0.546875

>>> # Limiting the denominator of a value
>>> print(c.limit_denominator(8))
4/7

>>> # Converting a float to a fraction
>>> x = 3.75
>>> y = Fraction(*x.as_integer_ratio())
>>> y
Fraction(15, 4)
>>>

讨论¶

在大多数程�中一般�会出现分数的计算问题,但是有时候还是需�用到的。 比如,在一个�许接�分数形�的测试��并以分数形�执行�算的程�中, 直接使用分数�以�少手动转�为�数或浮点数的工作。