Calling type(1/2) returns integer?
本问题已经有最佳答案,请猛点这里访问。
所以我注意到打电话:
1 | print type(1/2) |
返回一个整数,但它不应该是浮点型吗?
尝试
python-2.x除法运算符遵循经典除法。当出现整数操作数时,经典除法会截断小数点,返回整数(也称为楼层除法)。当给定一对浮点操作数时,它返回实际的浮点商(即真除法)。
例子:
1 2 3 4 | >>> 1 / 2 # integer truncation (floor division) 0 >>> 1.0 / 2.0 # returns real quotient (true division) 0.5 |
在python 3.x中,division的工作方式不同。
在python 2X中,没有
1 2 3 | >>>from __future__ import division >>>2/3 >>>0.6666666666666666 |
但是,如果你需要返回上一个行为(即楼层划分),那么尝试
1 2 | >>>2//3 >>>0 |
在python中,发生3次真正的除法-