在python中将字符串转换为long

时间:2011-01-24 02:07:31

标签: python

Python提供了一个方便的方法long()来将字符串转换为long:

long('234') 

将'234'转换为长

如果用户键在234.89然后python将引发错误消息:

ValueError: invalid literal for long()
with base 10: '234.89'

我们应该如何处理python程序员处理带有小数值的字符串的场景?

谢谢=)

2 个答案:

答案 0 :(得分:30)

long只能接受以字母10为基数的字符串敞篷车。因此,小数会造成伤害。在调用float之前,您可以执行long的值。如果您的程序在Python 2.x上,其中int和long差异很重要,并且您确定不使用大整数,那么使用int来提供密钥也可以。

所以,答案是long(float('234.89')),如果你没有使用大整数,它可能只是int(float('234.89'))。另请注意,Python 3中不会出现这种差异,因为默认情况下int会升级为long。 python3中的所有整数都很长,而隐藏的调用只是int

答案 1 :(得分:13)

好吧,多头除了整数外不能容纳任何东西。

一种选择是使用浮动:float('234.89')

另一种选择是截断或舍入。从float转换为long将截断为您: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