We know that python float number is 64bit. And I take a test:
float(2**53) is 9007199254740992.0,
and it is ok
float(2**53+1) is also 9007199254740992.0,
and it is ok, because the last 1 can not be presented in 64bit binary.
float(2**53+3) is equal to float(2**53+2),
but the result of
float(2**53+3) is **9007199254740996.0**
How does the float number work in python ?