On Apr 11, 4:24 pm, [EMAIL PROTECTED] wrote: > On Apr 11, 1:19 pm, [EMAIL PROTECTED] wrote: > > > couldn't you just do. > > > #untested > > new_round(n): > > answer = round(n) > > # is answer now odd > > if answer % 2: > > return answer - 1 > > else: > > return answer > > Whoops, this also affects odd numbers... > > Will try and find a GOOD solution later... > > Strange request though, why do you need it that way, because 2.5 is > CLOSER to 3 than to 2...
It also fails for negative numbers. For -2.5 as input, I get -4.0 whereas I expect -2.0 This is a lengthy solution I came-up with: def round_even(x): temp = round(abs(x)) if (abs(x) - 0.5)%2.0 == 0.0: temp=temp-1 return signum(x)*temp def signum(x): if x>0: return 1 if x<0: return -1 return 0 But i guess there are better ways. I need it 'cos I'm translating some code from Mathematica to Python. And Math..ica's Round[ ] behaves this way (as I requested) -- http://mail.python.org/mailman/listinfo/python-list