Python部门

有人可以向我解释这个吗?我试图规范化一组数字从-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.在我看来不透明,但我想这是它的方式。

您使用的是Python 2.x,其中整数除法将截断而不是成为浮点数。

>>> 1 / 2
0

你应该使其中一个是浮动:

>>> float(10 - 20) / (100 - 10)
-0.1111111111111111

或从__future__导入分区,这是迫使/采用Python 3.x的行为,总是返回一个float。

>>> from __future__ import division
>>> (10 - 20) / (100 - 10)
-0.1111111111111111
http://stackoverflow.com/questions/2958684/python-division

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:Python部门