我试图将一组从 -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。在我看来,这并不透明,但我想事情就是这样。
解释是什么?