调用type(1/2)返回整数?
我注意到调用:
print type(1/2)
会返回一个整数,但它不是应该返回一个浮点数吗?
相关文章:
- 暂无相关问题
2 个回答
0
在Python 2.x中,除法运算如果不使用remainder/divider
,结果会向下取整,也就是我们说的“向下除法”。
如果你想让Python 2.x返回“真实除法”(也就是把remainder/divider
加到商里),可以试试下面的方法。
>>>from __future__ import division
>>>2/3
>>>0.6666666666666666
但是如果你想恢复之前的行为(也就是向下除法),可以试试这个。
>>>2//3
>>>0
在Python 3.x中,默认就是“真实除法”。
9
试试 type(1/2.0)
,这个会返回浮点数。要得到浮点数的结果,至少有一个数字得是浮点数。
在Python 2.x中,除法运算符遵循的是经典除法。当两个数字都是整数时,经典除法会去掉小数部分,返回一个整数(也叫向下取整除法)。如果两个数字都是浮点数,它就会返回实际的浮点数结果(也叫真实除法)。
举个例子:
>>> 1 / 2 # integer truncation (floor division)
0
>>> 1.0 / 2.0 # returns real quotient (true division)
0.5
在Python 3.x中,除法的规则变了。type(1/2)
会返回浮点数。Python 3.x的除法运算符遵循的是真实除法。