> -----Original Message----- > Date: Fri, 30 Mar 2007 19:28:51 +0200 > From: Andreas Kostyrka <[EMAIL PROTECTED]> > Subject: Re: [Tutor] range()-like function for dealing with floats...? > To: "Carroll, Barry" <[EMAIL PROTECTED]> > Cc: tutor@python.org > Message-ID: <[EMAIL PROTECTED]> > Content-Type: text/plain; charset=us-ascii > > * Carroll, Barry <[EMAIL PROTECTED]> [070330 19:15]: > > Try entering "python range float" at your personal favorite search > > engine. I tried it on Google. Here is the first entry returned: > > > > ASPN : Python Cookbook : frange(), a range function with float > > ... > > Sadly missing in the Python standard library, this function > > allows > > to use ranges, just as the built-in function range(), but with > > float arguments. ... > > aspn.activestate.com/ASPN/Cookbook/Python/Recipe/66472 > > - 32k - Cached - Similar pages > > > > There were lots of others. > > Just don't forget that floats are not evenly spaced. The hole between > possible floats gets bigger the more you move away from zero. > > On my IA32 Linux laptop I get: > > >>> (1e+16) + 1 == (1e+16) > True > >>> (1e+16) + 10 == (1e+16) > False > > So a frange(1e+16, (1e+16) + 1000, 1) won't work, or at best will > result something else than what you thought it would. > > That's probably the reason why frange is not part of the standard > library: It's not possible to define it sensible for all float ranges, > and floats have many properties that make them fiendish. Typically, > programming courses just ignore the problematic aspects (at best one > learns that floats should not be used to represent money), one usually > has to take a course on Numerics to get the details. > > Andreas > Andreas is right, of course. In fact, the URL I referenced above includes a discussion of the contributor's function and ways of mitigating (NOT eliminating) the round-off problem.
Regards, Barry [EMAIL PROTECTED] 541-302-1107 ________________________ We who cut mere stones must always be envisioning cathedrals. -Quarry worker's creed _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor