【问题标题】:Maximum scientific notation?最大科学记数法?
【发布时间】:2019-01-09 05:16:27
【问题描述】:

如果我没记错的话,浮点数为幂分配了一定数量的位,为有效数字分配了一定数量的位。但是,在我的 64 位 Linux 系统上,我很难理解 python3 中的最大浮点科学记数法数:

>>> 1.8e308
inf
>>> 1.7e308
1.7e+308

这是怎么回事?

需要明确的是,我对最大浮点值不感兴趣。我对为什么它的价值背后的原因很感兴趣。例如,似乎溢出会发生在有效数字部分的 2 次幂上。为什么这会发生在 1.7 和 1.8 之间?这似乎很奇怪。

【问题讨论】:

标签: python python-3.x floating-point


【解决方案1】:

“1.7”和“1.8”不是浮点表示的小数部分的数字。它们是十进制数字,是用十进制表示的数字,而不是二进制浮点数。

溢出发生在 2 的幂,即 21024,约为 1.797693•10308

【讨论】:

    【解决方案2】:

    要获得确切的最大值,请尝试这样做:

    import sys
    sys.float_info.max
    

    你会得到: 1.7976931348623157e+308

    【讨论】:

      猜你喜欢
      • 2020-01-23
      • 1970-01-01
      • 2017-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      相关资源
      最近更新 更多