python - 表示 float 的字符串

标签 python string python-2.7 floating-point fractions

我正在尝试处理这样的字符串:

s = '1/2.05'

当我尝试将其解析为分数时:

Fraction(s)

我正在获得:

ValueError: ("Invalid literal for Fraction: u'1/2.05'", u'occurred at index 3')

我也试过:

Fraction(s.split('/')[0], s.split('/')[1])

但也有错误:

TypeError: ('both arguments should be Rational instances', u'occurred at index 3')

正确的解析是怎样的?

提前谢谢大家!

最佳答案

问题在于分数和 float 不混合,因此您不能直接对在分数中隐藏 float 的字符串进行类型转换。

不过不要为此使用 eval。
尝试分别处理分子和分母。 (您可以使用 float ,但直接在字符串上调用 Fraction 会更精确,避免使用 precision issues 。)

from fractions import Fraction
s = '1/2.05'
numerator, denominator =  s.split('/')
result = Fraction(numerator)/Fraction(denominator)
print(result)

关于python - 表示 float 的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53595158/

相关文章:

c - 为什么这个 'strncpy' 的实现有效?

networking - Scapy 原始数据操作

python - pandas 数据帧按类和时间戳分组

python - 在数据框的两列之间运行基本关联

python - Python中字符串连接的时间复杂度

python - 如何在 Python 2.7 中将 unicode 字符串转换为字符串文字?

python - 使用 Python API 获取 Azure 上的虚拟机创建时间

python - 按层次结构从许多字典中获取值

python - 上传带有 Google App Engine 问题的应用程序

python - django 表单中的重复字段