[Numpy-discussion] arange and floating point arguments

Ed Schofield edschofield at gmail.com
Fri Sep 14 05:37:53 EDT 2007


Hi everyone,

This was reported yesterday as a bug in Debian's numpy package:

>>> len(numpy.arange(0, 0.6, 0.1)) == len(numpy.arange(0, 0.4+0.2, 0.1))
False

The cause is this:

>>> ceil((0.4+0.2)/0.1)
7.0

>>> ceil(0.6/0.1)
6.0

which holds for both numpy's and the standard library's ceil().

Using arange in this way is a fundamentally unreliable thing to do,
but is there anything we want to do about this? Should numpy emit a
warning when using arange with floating point values when
(stop-start)/step is close to an integer?

-- Ed



More information about the NumPy-Discussion mailing list