为什么计算式是//呢 而不是/
def __int__(self):
return self.p // self.q
def __int__(self):
return self.p // self.q
2015-05-05
Python里头有3种除法:
地板除法:用//表示,不管操作数为何种数值类型,总是会舍去小数部分,返回数字序列中比真正的商小的最接近的数字。比如 1//2 = 0, 1.0//2= 0。
传统除法:用/表示,对整数之间的/,执行地板除,但对有浮点数参与的除法则执行传统意义上的除法。比如 1/2 = 0, 1.0/2=0.5。
精确除法:如果你想让上面的传统除法,更"传统",你就应该调用 from __future__ import division,这样以后/就真的变成传统意义上的传统除法了。比如,1/2=0.5, 1.0/2=0.5。
注意以上讲的是针对Python 2.6+版本的,对于Python 3+,传统除法被废除了,也就是说只有地板除和精确除法,分别用//和/表示,且不用调用 from __future__ import division。
举报