[EMAIL PROTECTED] wrote:
> Does round() always perfectly return the output expected or are there
> some artifacts which don't allow perfect functionality
> 
> Using python 2.5:
>>>> round(12.234, 2)
> 12.23
>>>> round(12.234, 3)
> 12.234
>>>> round(12.234, 1)
> 12.199999999999999
> 
> but was expecting 12.2
> 
> Also, for round(x,n), can't 'x' be an expression
> 
> round(5.25/2, 2)
> 
> was expecting 2.62  , but
> 
>>>> round(5.25/2, 2)
> 2.6299999999999999

You're running into floating-point issues (e.g. it's impossible to 
represent 2.63 perfectly in binary). What are you really trying to do? 
If you just want to format these with only two decimal places, use 
string formatting::

     >>> '%.2f' % 12.234
     '12.23'
     >>> '%.2f' % (5.25 / 2)
     '2.63'

I'm not sure why you would have expected 2.62 for the latter when::

     >>> 5.25 / 2
     2.625

STeVe
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to