在python中将字符串转换为long

zfr*_*cus 39 python

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

long('234') 
Run Code Online (Sandbox Code Playgroud)

; 将'234'转换为长

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

ValueError: invalid literal for long()
with base 10: '234.89'
Run Code Online (Sandbox Code Playgroud)

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

谢谢=)

Sen*_*ran 33

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

所以,答案是,long(float('234.89'))或者只是int(float('234.89'))你没有使用大整数.另请注意,Python 3中不会出现这种差异,因为默认情况下int会升级为long.python3中的所有整数都很长,并且对隐蔽的调用只是int

  • int('234.89')失败,错误与问题中显示的错误相同. (2认同)

pay*_*yne 14

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

一种选择是使用浮动: 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
Run Code Online (Sandbox Code Playgroud)