why does floor(x) return a float while docs state it returns integer?

I expected that floor(x) would return an integer especially since the docs state:

Return the floor of the input, element-wise.

The floor of the scalar x is the largest integer i, such that

i <= x. It is often denoted as :math:\lfloor x \rfloor.

Any reason why it returns a float? Bug/feature?

Thanks, Mark

I should have posted this question on the numpy list of course, even though floor is imported with pylab.

Off-list, Felix pointed me to the following discussion where some of the reasons are explained why a float is returned rather than an integer:

http://stackoverflow.com/questions/8582741/why-do-pythons-math-ceil-and-math-floor-operations-return-floats-instead-of

···

On Mon, Mar 31, 2014 at 5:05 PM, Mark Bakker <markbak@…287…> wrote:

I expected that floor(x) would return an integer especially since the docs state:

Return the floor of the input, element-wise.

The floor of the scalar x is the largest integer i, such that

i <= x. It is often denoted as :math:\lfloor x \rfloor.

Any reason why it returns a float? Bug/feature?

Thanks, Mark