On Wed, 22 Mar 2006 13:59:00 -0800, Chris Lasher wrote:

Two things:

1) math.floor returns a float, not an int. Doing an int() conversion on

a float already floors the value, anyways.

No it doesn't, or rather, int() is only equivalent to floor() if you limit

the input to non-negative numbers:

int(-2.2) => -2, but floor(-2.2) should give -3.

The standard definition of floor() and ceil() are:

floor(x) = maximum integer n such that n <= x

ceil(x) = minimum integer n such that n >= x

or as Python functions:

def floor(x):

"Returns the maximum integer less than or equal to x"

if x >= 0:

return int(x)

else:

if x % 1: return int(x)-1

else: return int(x)

def ceil(x):

"Returns the minimum integer greater than or equal to x"

return -floor(-x)

or even simpler:

from math import floor, ceil

(Caution: the functions defined in the math module return the floor and

ceiling as floats, not int, so you may want to wrap them in a call to int.)

--

Steven.