Python提供了一个方便的方法long()来将字符串转换为长整型:
long('234')
; 将 '234' 转换为 long 类型
如果用户输入 234.89,则 Python 会抛出一个错误信息:
ValueError: invalid literal for long()
with base 10: '234.89'
作为一名 Python 程序员,当遇到包含十进制值的字符串时应该如何处理?
谢谢 =)
Python提供了一个方便的方法long()来将字符串转换为长整型:
long('234')
; 将 '234' 转换为 long 类型
如果用户输入 234.89,则 Python 会抛出一个错误信息:
ValueError: invalid literal for long()
with base 10: '234.89'
作为一名 Python 程序员,当遇到包含十进制值的字符串时应该如何处理?
谢谢 =)
long
只能接受以10进制表示的字符串,因此十进制数会导致错误。你可以在调用long
之前对值进行float
转换。如果你的程序运行在Python 2.x版本中,而且你确定不使用大整数,那么使用 int
也可以提供键。
因此,答案是long(float('234.89'))
,或者如果没有使用大整数,则可以使用int(float('234.89'))
。同样需要注意的是,这种差异在Python 3中不存在,因为int已默认升级为长整型(long)。在Python 3中,所有整数都是long类型,转换调用只需使用int
.
长整型只能存储整数。
其中一种方法是使用浮点数: float('234.89')
另一种方法是截断或四舍五入。将浮点数转换为长整型时会自动截断:long(float('234.89'))
>>> long(float('1.1'))
1L
>>> long(float('1.9'))
1L
>>> long(round(float('1.1')))
1L
>>> long(round(float('1.9')))
2L