如何解决为什么内置这种奇怪的“回合”行为python 2.6
| 为什么这样 ?>>> 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在注释中指出的,此行为在Python 3中已更改:2/3
将像Python 9中的2.0/3
一样进行浮点除法。2//3
可用于在两个版本上获得整数除法行为)。
您的最后一个示例有效,因为2.0
不是整数,所以2.0/3
将执行\“ prop \\”浮点除法:
>>> 2.0/3
0.6666666666666666
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。