2013-02-13 22 views
2

我想一個字符串轉換,如「0.75」到3/4。做python有這個任何內置函數。的Python - 解析浮動字符串爲整數

我知道我可以使用浮動(「0.75」)得到一個浮點值轉換。但我只需要整數而不會失去分辨率。

我可以寫一個函數一樣乘以100,所以我會得到75/100,但還是如何evaulate到3/4。任何想法將不勝感激。

回答

4
>>> from fractions import Fraction 
>>> Fraction(0.75) 
Fraction(3, 4) 

docs

警告:非二進制小數(即分數從floating point numbers that cannot be represented accurately in binary衍生,像0.9),除非你通過float的字符串表示可能會產生意想不到的結果:

>>> Fraction(0.9) 
Fraction(8106479329266893, 9007199254740992) 
>>> Fraction("0.9") 
Fraction(9, 10) 
+0

非常感謝你 – karpanai 2013-02-13 12:48:05

+1

這對非二進制分數有什麼作用? – phant0m 2013-02-13 14:12:58

+1

@ phant0m:好點;我會編輯我的答案。 – 2013-02-13 14:15:15

3

的Python有fractions模塊。

>>> import fractions 
>>> fractions.Fraction('0.75') 
Fraction(3, 4) 
+0

非常感謝你 – karpanai 2013-02-13 12:47:41