python float 到 in int 转换

标签 python floating-point

我有一个真正让我发疯的问题。通常执行 int(20.0) 会导致 20。到目前为止,一切都很好。但是:

levels = [int(gex_dict[i]) for i in sorted(gex_dict.keys())]

gex_dict[i] 返回一个 float ,例如20.0,结果为:

"invalid literal for int() with base 10: '20.0'"

我离咀嚼最后一 block 键盘只有一步之遥。

最佳答案

'20.0' 是字符串,不是float;您可以通过错误消息中的单引号来判断。您可以通过首先使用 float 解析它,然后使用 int 截断它来从中获取 int:

>>> int(float('20.0'))
20

(尽管您可能希望在字典中存储 float 而不是字符串,因为这似乎是您所期望的。)

关于python float 到 in int 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10898215/

相关文章:

python 3导入所有包与一部分

python - 以平衡权重的 block 拆分列表

java - 为什么我的浮点变量保存整数?

java - 数组中同一索引有两个值

Haskell 浮点精度

c# - 将字符串通用解析为 float

python - ElementTree XML 做适当的间距和缩进

python - scikit-learn 管道中的 transformer_weights 有什么用?

python - 为什么我的生成器阻止 Flask 发送 SSE 响应?

python - 楼层划分如何根据文件规定不给出结果?