3.8 分?jǐn)?shù)運(yùn)算

2018-02-24 15:26 更新

問題

你進(jìn)入時(shí)間機(jī)器,突然發(fā)現(xiàn)你正在做小學(xué)家庭作業(yè),并涉及到分?jǐn)?shù)計(jì)算問題。或者你可能需要寫代碼去計(jì)算在你的木工工廠中的測(cè)量值。

解決方案

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

>>> 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ù)程序中一般不會(huì)出現(xiàn)分?jǐn)?shù)的計(jì)算問題,但是有時(shí)候還是需要用到的。比如,在一個(gè)允許接受分?jǐn)?shù)形式的測(cè)試單位并以分?jǐn)?shù)形式執(zhí)行運(yùn)算的程序中,直接使用分?jǐn)?shù)可以減少手動(dòng)轉(zhuǎn)換為小數(shù)或浮點(diǎn)數(shù)的工作。

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)