3.8 分數(shù)運算

2018-02-24 15:26 更新

問題

你進入時間機器,突然發(fā)現(xiàn)你正在做小學(xué)家庭作業(yè),并涉及到分數(shù)計算問題?;蛘吣憧赡苄枰獙懘a去計算在你的木工工廠中的測量值。

解決方案

fractions模塊可以被用來執(zhí)行包含分數(shù)的數(shù)學(xué)運算。比如:

>>> 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)
>>>

討論

在大多數(shù)程序中一般不會出現(xiàn)分數(shù)的計算問題,但是有時候還是需要用到的。比如,在一個允許接受分數(shù)形式的測試單位并以分數(shù)形式執(zhí)行運算的程序中,直接使用分數(shù)可以減少手動轉(zhuǎn)換為小數(shù)或浮點數(shù)的工作。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號