【发布时间】:2015-11-25 13:42:23
【问题描述】:
我通过将两个数字相除得到一个浮点数。我知道数字是可整除的,所以我总是有一个整数,只是它的类型是浮点数。但是,我需要一个实际的 int 类型。我知道int() 会去掉小数点(即四舍五入)。我担心,由于浮动不准确,如果我这样做,例如int(12./3) 或 int(round(12./3)) 最终可能是 3 而不是 4,因为 4 的浮点表示可能是 3.9999999593519561(这不是,只是一个示例)。
这会发生吗?我可以确保它不会发生吗?
(我问是因为在重塑 numpy 数组时,我收到警告说形状必须是整数,而不是浮点数。)
【问题讨论】:
-
为什么不简单地使用整数除法?
-
是的,我刚发帖后就想到了。正要更新问题,但我会让你的评论来代替。
-
不过,如果我这样做,例如3.5/0.5 那么这是不可能的。 (我没有,我将两个整数相除,但为了论证......)
-
如果您的期望符合语言的语义,则将浮点数转换为 int 将始终返回您期望的 int。由于您没有解释您的期望是什么,我们怎么可能知道您的期望是否与语言的语义相匹配?
-
@JohnColeman,谢谢,我现在更新了标题。我认为在查看示例时,问题中的含义已经充分表达了,但永远不会太清楚,而且标题含糊不清。
标签: python