Python - 将浮点字符串解析为整数

时间:2013-02-13 12:07:30

标签: python math

我想将像“0.75”这样的字符串转换为3/4。 python是否有任何内置函数。

我知道我可以使用float(“0.75”)转换它以获得浮点值。但我只需要整数而不会失去分辨率。

我可以编写一个函数,比如将它乘以100,所以我会得到75/100,但仍然可以调整到3/4。任何想法都会非常感激。

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:3)

Python有fractions模块。

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