Le Monday 28 July 2008 02:35:08 Herman, vous avez écrit :
> Where is the correct round() method?
> Hello,
>
>  I need a round function that _always_ rounds to the higher integer if
>  the argument is equidistant between two integers. In Python 3.0, this
>  is not the advertised behavior of the built-in function round() as
>
>  seen below:
>  >>> round(0.5)
>
>  0
>
>  >>> round(1.5)
>
>  2
>
>  >>> round(2.5)
>
>  2

Hmm, I don't have the same result in python2.6, I suspect it's a floating 
point precision problem, try just to type "0.5" in the console to see the 
exact representation of this value on your system, it may be just over or 
just down by a small quantity.

On mine with 2.6 this typically give :

>>>[26]: 0.5
...[26]: 0.5

>>>[27]: 0.49
...[27]: 0.48999999999999999

>>>[29]: 0.51
...[29]: 0.51000000000000001

>>>[28]: 1.1
...[28]: 1.1000000000000001

>>>[35]: round(0.5)
...[35]: 1.0


-- 
_____________

Maric Michaud
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to