in reply to Converting 2**54-1 to Binary
Double-precision floating point numbers have 53 bits of precision. 2**54-1 requires 54 bits of precision to represent, so it can't be represented exactly by a double-precision floating point number.