2014-02-24 49 views
0

我想在python中使用Fraction類提供一個字符串作爲輸入,我可以讓它爲一些分數工作,但它失敗其他例如:2.5/32(ValueError)。 我無法快速瀏覽任何文檔,這將解釋這一點。 任何建議。在Python中的分數類返回無效的字符串

+0

你的意思是'Fraction(「2.5/32」)'? – jonrsharpe

+0

...你真的不明白爲什麼'2.5/32'可能不是一個有效的分數? – kindall

+0

不要瀏覽文檔;閱讀。 – chepner

回答

2

fractions.Fraction只適用於整數; 2.5不是一個整數。一個相當的部分將是

f = fractions.Fraction(25, 320) 
+0

@DSM這對我不起作用,至少在Python 2.6中不起作用。它在2.7中「起作用」,但似乎給出了「Fraction(1,128)」(10x太小)的錯誤答案。 – chepner

+0

不,它的工作原理。它在Python 2.6中不起作用,因爲它太舊了,但它在2.7及更高版本中給出了正確答案:'Fraction(Fraction(25,10),32)== 5/64'。我用你的320而不是真正的32,所以它被關閉了10倍。應該猜測是我搞砸了,而不是Python。 :^) – DSM