Skip to main content
 首页 » 编程设计

python之为什么内置 'round' 的这种奇怪行为。(python 2.6)

2025年05月04日9freeliver54

为什么会这样?

>>> round(2/3) 

0.0

>>> round(0.66666666666666666666666666666667) 

1.0

>>> round(2.0/3) 

1.0

请您参考如下方法:

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

试试这个:

>>> 2/3 
0 

使用带有两个整数值的/ 将进行整数除法。所以 round() 的参数 已经 0,这使得 round() 返回 0。

更新:正如@Mark 在评论中指出的那样,this behaviour changed in Python 3 : 2/3 将像 2.0/3 在 Python 2 中那样进行浮点除法。2//3 可用于获取整数两个版本的除法行为)。

你的最后一个例子有效,因为 2.0 不是整数,所以 2.0/3 将做一个“适当的”浮点除法:

>>> 2.0/3 
0.6666666666666666