【问题标题】:Is there Infinity in Spreadsheets?电子表格中有无穷大吗?
【发布时间】:2016-01-13 17:26:08
【问题描述】:

我想知道是否有任何方法可以在 MS Excel 中表示无穷大(或足够高的数字)。

我特别在 Java 中寻找 Double.POSITIVE_INFINITYDouble.MAX_VALUE 之类的东西。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    对于 LibreOffice 6,我使用 1.79769313486231E+308,这似乎是它允许我输入的最大数字,但我想念没有 +- 无限的精确表示,也是因为我怀疑上面的数字是特定于实现的......

    还有一点让我认为电子表格非常适合对表格数据进行可视化、编辑和简单计算,但对于进行更复杂的操作/建模,必须使用真正的编程语言...

    【讨论】:

      【解决方案2】:

      我认为值得补充的是,可以从 vba 函数 (How do you get VB6 to initialize doubles with +infinity, -infinity and NaN?) 返回 Infinity 以及其他特殊值:

       Function Infinity(Optional Recalc) As Double
       On Error Resume Next
       Infinity = 1/0
       End Function
      

      当作为单元格公式输入时,会显示一个大数字 (2^1024)。您可以设置条件格式以将“+Infinity”显示为带有公式条件的数字格式:

      =AND(ISNUMBER(A1),A1>2^1023*(2-2^-52))
      

      可以插入包含动态引用的虚拟参数,以便在打开工作簿时重新计算值,例如:

      =Infinity(IF(,) IF(,))
      

      【讨论】:

        【解决方案3】:

        我喜欢使用 1e99,因为它以最少的击键次数提供最大的数字,但我相信绝对最大值实际上是 9.99999E+307。在数字频谱的那个阶段,就 Excel 而言,我认为没有太大区别。

        【讨论】:

        • 如果出于某种原因您需要使用特别大的数字,您始终可以使用所需的参考名称声明一个等于它的常量。
        • Excel 表示无穷大的正式方法显示 #NUM!在细胞中。在数学上,您可以使用产生无穷大的=-1*LOG10(0) 公式(请参阅Wolfram|Alpha)。
        • @Gurol'Ca =-1*LOG10(0) 公式可以用来比较数字吗?如果不是,无论 Wolfram Alpha 或其他数学家怎么说,我都不能在 Excel 中真正认为它是无穷大的。
        • @AdamL.S.你说的对。我不知道为什么,但 Excel 不区分无穷大并允许在无穷大上进行比较和其他有效计算,例如 R。例如,如果 A1 = -1*LOG10(0)(所以 #NUMA1 > 1 在 Excel 中产生 #NUM,但是Inf > 1 在 R 中产生 TRUE
        • @Gurol'Ca - 取决于您与之交谈的数学家,#DIV/0!误差可以被认为是无穷大,因为在任何整数中都有无数个零。
        猜你喜欢
        • 1970-01-01
        • 2014-04-16
        • 2022-08-12
        • 2019-03-19
        • 1970-01-01
        • 2023-03-16
        • 1970-01-01
        • 2017-06-12
        • 2013-10-17
        相关资源
        最近更新 更多