我试图将一组数字从 -100 规范化到 0 到 10-100 的范围,并且遇到问题只是注意到即使根本没有变量,这也不能评估我期望的方式:
>>> (20-10) / (100-10)
0
浮点除法也不起作用:
>>> float((20-10) / (100-10))
0.0
如果除法的任一侧被转换为浮点数,它将起作用:
>>> (20-10) / float((100-10))
0.1111111111111111
第一个例子中的每一边都被评估为一个 int,这意味着最终的答案将被转换为一个 int。由于 0.111 小于 0.5,因此舍入为 0。在我看来它并不透明,但我想就是这样。
解释是什么?