为什么这样 ?
>>> round(2/3)
Run Code Online (Sandbox Code Playgroud)
0.0
>>> round(0.66666666666666666666666666666667)
Run Code Online (Sandbox Code Playgroud)
1.0
>>> round(2.0/3)
Run Code Online (Sandbox Code Playgroud)
1.0
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)
| 归档时间: |
|
| 查看次数: |
1008 次 |
| 最近记录: |