如果我没记错的话, float 将一定数量的位分配给幂,并将一定数量的位分配给有效数字。然而,我在理解 64 位 Linux 系统上 python3 中的最大浮点科学计数法数字时遇到了一些困难:
>>> 1.8e308
inf
>>> 1.7e308
1.7e+308
这是怎么回事?
需要明确的是,我对最大浮点值不感兴趣。我对它的值(value)背后的推理很感兴趣。例如,对于有效数字部分,似乎溢出会发生在 2 的偶次幂上。为什么这种情况会发生在 1.7 和 1.8 之间?这看起来很奇怪。
最佳答案
“1.7”和“1.8”不是浮点表示的小数部分中的数字。它们是用十进制表示数字得出的十进制数字,而不是二进制 float 。
溢出发生在 2 的幂,21024,大约为 1.797693•10308。
关于python - 最大科学记数法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54096013/