Python 带小数的浮点型字符串转换为int整数的解决方案

456 阅读1分钟

如果你将带小数点的float型的字符串传递给int将会得到错误:

ValueError: invalid literal for int() with base 10

这属于Python类型转换中的一个需要特别注意的地方:切记int()只能转化由纯数字组成的字符串 Python基本数据类型一般分为:数字、字符串、列表、元组、字典、集合这六种基本数据类型。 数字类型包括:整数、浮点数。这两者是可以相互转换的,如下所示:

>>>int(1.0)
>>>float(1)

数字类型也可以与字符类型进行相互转换,如下所示:

>>>#int类型和str类型的互换
>>>int('1')
>>>str('1')

#float类型和str类型的互换
>>>float('1.0')
>>>str('1.0')

但是如果将float型的字符串传递给int函数将会得到错误:

>>>int('1.0')
ValueError: invalid literal for int() with base 10

因为出现了点号,所以不符合规范,切记int()只能转化由纯数字组成的字符串。这个时候先要将字符串1.0转换成float类型再转换成int类型:

>>>int(float('1.0'))