Joa*_*uer 16

这不是奇怪的行为round():

试试这个:

>>> 2/3
0
Run Code Online (Sandbox Code Playgroud)

使用/两个整数值将执行整数除法.所以,争论round()已经 0,这使得round()返回0.

更新:正如@Mark在评论中指出的那样,这种行为在Python 3中发生了变化:2/3将像2.0/3Python 2中那样进行浮点除法.2//3可用于在两个版本上获得整数除法行为).

你的最后一个例子是有效的,因为2.0它不是整数,所以2.0/3会做一个"propper"浮点除法:

>>> 2.0/3
0.6666666666666666
Run Code Online (Sandbox Code Playgroud)

  • 注意这对于python 1.x和2.x是正确的但是python> - 3已经改变了这个2/3给出0.6666666666666666参见<http://www.python.org/dev/peps/pep-0238/> (3认同)