I think that Python 2.7 changed the float rounding behavior.  From http://docs.python.org/dev/whatsnew/2.7.html:

> Conversions from long integers and regular integers to floating point now round differently, returning the floating-point number closest to the number. This doesn’t matter for small integers that can be converted exactly, but for large numbers that will unavoidably lose precision, Python 2.7 now approximates more closely.