S. Chris Colbert schrieb:
This seems strange to me, but perhaps I am just missing something:

In [12]: t = 0.
In [13]: time = 10.

In [14]: while t < time:
....: print t ....: t += 1. ....: ....: 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0
In [15]: t = 0.

In [16]: time = 10.

In [17]: while t < time:
....: print t ....: t += 0.1 ....: ....: 0.0 0.1 0.2 0.3 <--snip-->
9.4
9.5
9.6
9.7
9.8
9.9
10.0


I would think that second loop should terminate at 9.9, no?
I am missing something fundamental?


Yes. The lack of precision that floating points suffer from (nothing python-specific), and the rounding-behavior of printing them.

>>> t = 0.
>>> time = 10.
>>> while t < time:
...     print repr(t)
...     t += .1
...
0.0
0.10000000000000001
<snip/>
9.8999999999999808
9.9999999999999805
>>>


Diez
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to