python float to int转换
问题内容:
我有一个问题确实使我发疯。通常这样做int(20.0)
会导致20
。到现在为止还挺好。但:
levels = [int(gex_dict[i]) for i in sorted(gex_dict.keys())]
而gex_dict[i]
返回浮点数,例如20.0
,结果为:
"invalid literal for int() with base 10: '20.0'"
我距离捏紧键盘的最后一块仅一步之遥。
问题答案:
'20.0'
是一个字符串,不是一个float
;
您可以通过错误消息中的单引号来分辨。您可以int
先使用进行解析float
,然后使用以下方法将其截断int
:
>>> int(float('20.0'))
20
(尽管也许您希望在字典中存储浮点数而不是字符串,因为这似乎是您期望的。)