-1

不能在这里很好地回答。我的代码:

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) 编辑:我想知道如何更改我的代码以解决问题,而不是背后的理论..

4

1 回答 1

2

这是因为浮点舍入问题。你可以阅读这篇文章,了解它发生的原因。

如果你想快速修复,只需使用 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)
于 2018-12-29T19:23:23.227 回答