受这个问题的启发,我试图找出那里到底发生了什么(我的答案更直观,但我不能完全理解它的原因).
我相信它归结为此(运行64位Python):
>>> sys.maxint
9223372036854775807
>>> float(sys.maxint)
9.2233720368547758e+18
Run Code Online (Sandbox Code Playgroud)
Python使用IEEE 754浮点表示,有效地为53位.但是,据我所知,上面例子中的重要内容需要57位(如果丢弃隐含的前导1,则为56位).有人可以解释这种差异吗?