繁体   English   中英

我对 python while 循环中的打印输出感到困惑

[英]I'm confused about the print out in python while loops

我认为循环应该以打印出 23.1 结束,为什么要在 23.0 中停止? 23.0 仍然满足“如果猜测 <= x”,不是吗?

我的 python 版本是 2.7

我是新手,一直卡在这里,希望有人可以为我解释一下,非常感谢。

x = 23
epsilon = 0.01
step = 0.1
guess = 0.0

while abs(guess**2-x) >= epsilon:
    if guess <= x:
        guess += step
        print guess
    else:
        break
if abs(guess**2 - x) >= epsilon:
    print 'failed'
else:
    print ('succeeded: ' + str(guess))

guess23.000000000000057时,循环到达break ,并且大于23 您可能期望它是23.0 ,但浮点数不会产生精确的算术

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM