2017-09-19 93 views
0

名稱變量是用於公制(mm)測量的'M5'或用於英寸的'1/2'的字符串。 「1 1/2」或測量值大於1英寸時,它會變得有點複雜。將混合分數轉換爲小數

這裏是我現在相關英寸測量問題:

decimal = 1.0 * float(designation) 

而且,我已經通過分數模塊看起來沒有任何的運氣。

+2

這是不明確。你是否想將混合分數的字符串表示轉換爲十進制值?如果是這樣,你的問題很多都是不相關的細節。 –

+0

是的,指定變量必須是一個字符串來保存'M5'和'1 1/2'。 – brddawg

+0

'eqv = designation [1:] * 0.0393701'這裏,你用一個浮點數乘以一個字符串......此外,爲什麼'0.0039 ...'?什麼是'M'?毫米? –

回答

1

這可以讓你的存在方式的一部分:

def mixed_to_float(x): 
    return float(sum(fractions.Fraction(term) for term in x.split())) 

例如,

>>> mixed_to_float('1/3') 
0.3333333333333333 
>>> mixed_to_float('1 1/2') 
1.5