2013-02-13 48 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