for with decimal values?

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Mon May 4 02:05:33 CEST 2009


En Sun, 03 May 2009 17:41:49 -0300, Zentrader <zentraders at gmail.com>  
escribió:

> There is no need for a function or a generator.  A for() loop is a
> unique case of a while loop
> ## for i in range(-10.5, 10.5, 0.1):
> ctr = -10.5
> while ctr < 10.5:
>    print ctr
>    ctr += 0.1

Isn't so easy. You have representation errors and rounding errors here,  
and they accumulate. The last number printed should be 10.4 but I get 10.5:
...
10.3
10.4
10.5
(or more precisely, 10.499999999999959)

Also, after exiting a for loop, the *last* value used is retained. In your  
while loop, the ctr variable contains the *next* value.

-- 
Gabriel Genellina




More information about the Python-list mailing list