【发布时间】:2022-01-14 06:40:49
【问题描述】:
尝试创建一个非常简单的时钟作为我程序的一部分,它每 0.05 秒增加 0.05 秒。它没有按我的意图工作。我的相关代码如下所示,我在 pygame 窗口上显示时钟本身。
clocknum = clocknum + 0.05 # these 3 lines here are contained within a while loop for the rest of my game so constantly repeating
showclock(clocknum)
time.sleep(0.05)
def showclock(clocknum):
font = pygame.font.SysFont('bahnschrift', 20)
text = font.render(str(clocknum), 1, (0, 0, 0))
screen.blit(text, (5, 700))
而不是像预期的那样以 5 的倍数上升,而是给出接近但不太准确的数字,例如:
3.349999999999999
基本上,计算器并不完全准确,我想知道为什么,可能是由于我使用的数据类型?只是一个简单的整数,有没有更好的方法来做到这一点?感谢所有帮助
【问题讨论】:
-
这能回答你的问题吗? Is floating point math broken?
-
是的,谢谢,我想我的问题是您概述的内容和@Aron Atilla Hegedus 的观点的结合。谢谢