[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