在这里不能很好地回答。 我的代码:
t = 0
i = 0
arrival = 7.2
while t < 3600:
time_passed = 0.1
if t % arrival == 0:
i+=1
t+= time_passed
print (i)
===>由于某种原因,我得到1。无法理解如何解决(应该是500) 编辑:我想知道如何更改代码以解决问题,而不是背后的理论。
答案 0 :(得分:2)
这是由于浮点舍入问题。您可以阅读this帖子,了解其发生原因。
如果要快速修复,只需使用pythons十进制库即可。
from decimal import Decimal
t = 0
i = 0
arrival = Decimal('7.2')
while t < 3600:
time_passed = Decimal('0.1')
if t % arrival == 0:
i+=1
t+= time_passed
print (i)