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

2 投票
2 回答
938 浏览
提问于 2025-04-17 15:44

我想把一个像“0.75”这样的字符串转换成3/4。请问Python有没有内置的函数可以做到这一点。

我知道可以用float("0.75")把它转换成浮点数,得到一个小数值。但我只想要整数,且不想失去精度。

我可以写个函数,把它乘以100,这样就能得到75/100,但我还是不知道怎么进一步简化成3/4。有什么好主意吗?

2 个回答

3

Python有一个叫做fractions的模块。

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

可以查看这个文档

有一点需要注意:非二进制分数(也就是那些来自无法准确用二进制表示的浮点数,比如0.9)可能会产生意想不到的结果,除非你传入这个float的字符串表示形式:

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

撰写回答