When turning a float into a string (printing does this automatically), python limits it to only the 12 most significant digits, plus the decimal point.
When returning the number from a function, you always get the full precision.
To print more digits (if available), use string formatting:
print '%f' % range_key # prints 1347053958.526874
That defaults to 6 digits, but you can specify more precision:
print '%.10f' % range_key # prints 1347053958.5268740654
Alternatively, python offers a newer string formatting method too:
print '{0:.10f}'.format(range_key) # prints 1347053958.5268740654
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…