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

如果你将带小数点的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: '1.0'

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

int(float('1.0'))