[Python-Dev] Return type of round, floor, and ceil in 2.6

Guido van Rossum guido at python.org
Fri Jan 4 17:50:03 CET 2008


On Jan 4, 2008 12:13 AM, Jeffrey Yasskin <jyasskin at gmail.com> wrote:
> On Jan 3, 2008 10:37 AM, Guido van Rossum <guido at python.org> wrote:
> > > Well, as issue 1689 states, the backporting was commited by Jeffrey on
> > > rev 5967 [2], so this is the time to understand if we want this or
> > > not.
> >
> > This is a problem. Right now, in the trunk, math.float(1) returns 1,
> > where it should return 1.0 for compatibility with 2.5. Jeffrey, can
> > you fix this and similar incompatibilities you introduced?
>
> Whoops! I've committed r59707 to fix math.{floor,ceil}. Let me know if
> you find any other problems. ... Hmm. I've also changed the behavior
> of round(2.5). I'll change that back tomorrow morning.

Looks like in Python 2.6, round(0.5) right now returns 0.0, whereas in
2.5, it returns 1.0.

I think it should return 1.0, for best compatibility with Python 2.5.

> I haven't seen any answers to the original question. It looks like
> Decimal is decided by 2.5 too: return a float from everything.

Right.

> Rational, being a completely new type, is up to you guys, but because
> new support for the conversion routines seems to be rare, it's
> probably best to have it return floats too.

I think the pre-3.0 rule should be: round(), math.floor(), math.ceil()
*always* return a float.

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-Dev mailing list