作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
过去两周我一直在学习 Python 编程,到目前为止进展顺利。但现在我陷入困境,似乎找不到答案。我发现 while 循环有一个非常奇怪的行为,我就是无法理解。
x=0
step_size=0.2
while x<2:
print x
x+=step_size
此代码打印:
0
0.2
0.4
...
1.8
2.0
2.0应该不会被打印吧?当 x 变为 2.0 时,语句“x<2”为 false,因此循环应退出并且永远不会打印 2.0。
现在真正奇怪的部分是:它适用于其他数字。 Step_size=0.4 打印最多 1.6,step_size=0.1 最多打印 1.9。使用“x<1”作为语句并且step_size=0.2也可以。
我错过了什么?
最诚挚的问候,狮子座
编辑:我使用的是 python 2.7.5 和默认的 Idle Editior v2.7.5
最佳答案
它是浮点算术。 python 3.6 控制台中的输出
0
0.2
0.4
0.6000000000000001
0.8
1.0
1.2
1.4
1.5999999999999999
1.7999999999999998
1.9999999999999998
关于python - While 循环计数不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53208032/
我是一名优秀的程序员,十分优秀!