我试图将一组从-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小于.5,因此将其舍入为0。在我看来,这不是透明的,但我想是这样的。
有什么解释?