我想一个字符串转换,如“0.75”到3/4。做python有这个任何内置函数。的Python - 解析浮动字符串为整数
我知道我可以使用浮动(“0.75”)得到一个浮点值转换。但我只需要整数而不会失去分辨率。
我可以写一个函数一样乘以100,所以我会得到75/100,但还是如何evaulate到3/4。任何想法将不胜感激。
我想一个字符串转换,如“0.75”到3/4。做python有这个任何内置函数。的Python - 解析浮动字符串为整数
我知道我可以使用浮动(“0.75”)得到一个浮点值转换。但我只需要整数而不会失去分辨率。
我可以写一个函数一样乘以100,所以我会得到75/100,但还是如何evaulate到3/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)
非常感谢你 – karpanai 2013-02-13 12:48:05
这对非二进制分数有什么作用? – phant0m 2013-02-13 14:12:58
@ phant0m:好点;我会编辑我的答案。 – 2013-02-13 14:15:15