[Python-Dev] Return type of round, floor, and ceil in 2.6
Guido van Rossum
guido at python.org
Sat Jan 5 17:54:44 CET 2008
On Jan 4, 2008 10:16 PM, <glyph at divmod.com> wrote:
> On 4 Jan, 10:45 pm, python at rcn.com wrote:
> >[GvR to Tim]
> >>Do you have an opinion as to whether we should
> >>adopt round-to-even at all (as a default)?
> >
> >For the sake of other implementations (Jython, etc) and for ease of
> >reproducing the results with other tools (Excel, etc), the simplest
> >choice is int(x+0.5). That works everywhere, it is easy to explain, it
> >runs fast, and it is not hard to get right.
>
> I agree for the default. Except the part where Excel, Jython, and
> Python's current round, actually use sign(x) * int(abs(x)+0.5), so maybe
> it's not *completely* easy to get right ;-).
>
> Having other rounding methods *available*, though, would be neat. The
> only application I've ever worked on where I cared about the difference,
> the user had to select it (since accounting requirements differ by
> jurisdiction and, apparently, by bank preference). Having a standard
> way to express this (especially if it worked across different numeric
> types, but perhaps I digress) would be pleasant. Implementing
> stochastic rounding and banker's rounding oneself, while not exactly
> hard, is a drag.
The decimal module already supports rounding modes in its context. For
other types, perhaps converting to decimal might be good enough?
--
--Guido van Rossum (home page: http://www.python.org/~guido/)
More information about the Python-Dev
mailing list