【发布时间】:2009-07-07 20:35:48
【问题描述】:
我在 Python 中有一个格式为“nn.nnnnn”的字符串,我想将其转换为整数。
直接转换失败:
>>> s = '23.45678'
>>> i = int(s)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '23.45678'
我可以使用以下方法将其转换为小数:
>>> from decimal import *
>>> d = Decimal(s)
>>> print d
23.45678
我也可以在'.'上进行拆分,然后从零中减去小数点,然后将其添加到整数中......呸。
但我更喜欢将它作为一个 int,而不需要不必要的类型转换或操作。
【问题讨论】:
-
马特,23.45678 不是整数。如果您希望 Python 将字符串转换为整数,请确保给它一个整数。关于什么是“正确”的事情可以用任何一种方式进行争论,最终有人会不高兴。
标签: python string integer decimal