Python中带浮点数格式的字符串转整数报错问题求助
问题解决:带小数点的字符串转整数报错
核心原因:int()的参数要求
不管是Python 2.7还是Python 3,int()函数接收字符串参数时,仅支持纯整数格式的字符串(不能包含小数点)。这就是你运行int('3.3')或int('3.0')时报错的原因——这些字符串不符合整数字面量的规范。
正确的转换方式
要把带小数点的字符串转为整数,需要先将字符串转为浮点数,再转换为整数(转换时会自动截断小数部分):
typConvInt = int(float('3.3')) print(typConvInt) # 输出 3
针对'3.0'的情况,同样适用这个方法:
conv2 = int(float('3.0')) print(conv2) # 输出 3
参考文档翻译(Python 3 标准类型文档)
class int(x=0)
class int(x, base=10)
返回一个由数字或字符串x构造的整数对象,未传参时默认返回0。若x是字符串,它必须是可选符号前缀('+'/'-')后跟指定进制(默认10进制)的整数数字组成的合法字符串。参数base可取0或2-36之间的整数;若base为0,则根据字符串前缀判断进制:'0b'/'0B'代表二进制,'0o'/'0O'代表八进制,'0x'/'0X'代表十六进制,无前缀则默认十进制。
关于教程的疑问
你提到的教程称int('3.3')应返回3,这大概率是教程描述有误,正确流程必须包含先转浮点数的步骤。
内容的提问来源于stack exchange,提问作者Sunil G.V.
相关产品推荐
相关产品推荐

