全部博文(370)
分类: Python/Ruby
2011-09-24 08:46:48
通常C/C++中,"/ " 算术运算符的计算结果是根据参与运算的两边的数据决定的,比如:
6 / 3 = 2 ; 6,3都是整数,那么结果也就是整数2;
6.0 / 3.0 = 2.0 ; 6.0,3.0是浮点数,那么结果也是浮点数2.0,跟精确的说,只要" / " 两边有一个数是浮点数,那么结果就是浮点数。
在Python2.2版本以前也是这么规定的,但是,Python的设计者认为这么做不符合Python简单明了的特性,于是乎就在Python2.2以及以后的版本中增加了一个算术运算符" // "来表示整数除法,返回不大于结果的一个最大的整数,而" / " 则单纯的表示浮点数除法,但是,为了折中,所有2.X版本中,也是为了向后兼容,如果要使用" // ",就必须加上一条语句:
from __future__ import division
一看到这句," / "就表示 浮点数除法,返回浮点结果;" // "表示整数除法。
但是,预计在Python3.0发布时,就没有这种折中情况了,," / "就一定表示浮点数除法,返回浮点结果;" // "表示整数除法。