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

Jeffrey Yasskin jyasskin at gmail.com
Sat Jan 5 09:56:23 CET 2008


On Jan 4, 2008 8:50 AM, Guido van Rossum <guido at python.org> wrote:
> 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.

These rollbacks, and that of pow(-1,.5)==1j are submitted as r59731.
Keep letting me know what else I broke.

-- 
Namasté,
Jeffrey Yasskin


More information about the Python-Dev mailing list