On Sat, Jun 21, 2014 at 10:57 AM, FraserL <fraser.long+use...@nospamgmail.com> wrote: > #test code > z = 0.01 > p = 0.0 > for x, y in enumerate(range(1, 20)): > p += z > print(p) > #end
General tip when you think you've found a bug: Cut out everything that isn't part of it. In this case, the enumerate has nothing to do with what you're seeing, which is an artifact of floating-point arithmetic, so a more classic loop header would simply be: for i in range(19): (Or some people will use _ to emphasize that the iterated-over values are being ignored.) The smaller you can make your test code, the more likely that people will be able to see what's going on. Also, when you're looking at how things print out, consider looking at two things: the str() and the repr(). Sometimes just "print(p)" doesn't give you all the info, so you might instead want to write your loop thus: z = 0.01 p = 0.0 for i in range(19): p += z print(str(p) + " -- " + repr(p)) Sometimes you can get extra clues that way, although in this instance I think you won't. ChrisA -- https://mail.python.org/mailman/listinfo/python-list