不能在这里很好地回答。我的代码:
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) 编辑:我想知道如何更改我的代码以解决问题,而不是背后的理论..
不能在这里很好地回答。我的代码:
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) 编辑:我想知道如何更改我的代码以解决问题,而不是背后的理论..
这是因为浮点舍入问题。你可以阅读这篇文章,了解它发生的原因。
如果你想快速修复,只需使用 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)