|
|
|
|
|
by zokier
1929 days ago
|
|
0 is actually what I'd expect as an answer. Even on very modern Python you get In [1]: 2.0**64 - (2.0**64-1.0)
Out[1]: 0.0
Thats how floats behave like with operands that differ greatly in magnitude. Also this In [2]: 2.0**64 == (2.0**64 - 1.0)
Out[2]: True
|
|
Given a four byte mantissa, it should be 1 for anything under and equal to 2^32 and 0 for anything over 2^32. Instead it outputted some random number. A bug in checking the flags or some-such. Or maybe a bug in the float to string routine.