On Tue, Sep 27, 2011 at 11:48 AM, Alexander Belopolsky
<alexander.belopol...@gmail.com> wrote:
> On Tue, Sep 27, 2011 at 2:36 PM, Guido van Rossum <gu...@python.org> wrote:
> ..
>> But that's exactly what we don't *want* you to do! Because (unless you
>> are a numerical wizard) you probably aren't doing the error analysis
>> needed to avoid the "unexpected extra point" problem due to floating
>> point inaccuracies. For your own good, we want you to state the count
>> and let us deliver the number of points you want.
>
> But the likely result will be that a non-wizard will find that range()
> does not work with floats, reach for some_name_here(), find the
> absence of step option, curse the developers, write
> count=int((stop-start)/step) and leave this with a nagging thought
> that (s)he forgot +/-1 somewhere.

But the *user* can just force this to round by using
int((stop-start+0.5)/step) or by using int(round()); either of these
is an easy pattern to teach and learn and useful in many other places.

The problem is that frange() cannot do that rounding for you, since
its contract (if it is to be analogous to range() at all) is that
there is no assumption that stop is anywhere close to start + a
multiple of step.

-- 
--Guido van Rossum (python.org/~guido)
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to