为什么在while循环中加0.01会打印出奇怪的数字?

2024-09-28 03:22:30 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我创建了一个whilex<;=10加0.01,但是它输出数字到4dp,以此类推,并且降低了结尾。你知道吗

x = 0
c = 0 #count of numbers
while x <= 10:
    x += 0.01
    c += 1
    print (x)
print(c)

预期结果 0.01, 0.02, 0.03 结果似乎在0.06变了

0.01个 0.02 0.03 0.04 0.05 0.060000000000000005 0.07 0.08 0.09 0.09999999999999999 中间的东西 9.959999999999832 9.969999999999832 9.979999999999832 9.989999999999831 9.999999999999831 10.009999999831


Tags: ofltcount结尾数字printnumberswhile
1条回答
网友
1楼 · 发布于 2024-09-28 03:22:30

我猜这是因为浮点舍入行为。有趣的是,您可以在for循环中按十进制值进行迭代,但是浮点加法的不可靠行为(据我所知)使得这不太理想。你知道吗

相关问题 更多 >

    热门问题