【问题标题】:Why is Excel not calculating the cube root as the cube root?为什么 Excel 不将立方根计算为立方根?
【发布时间】:2020-04-02 22:18:10
【问题描述】:

我怀疑 Excel 计算以分数表示的重复小数的指数(例如 1/3)与没有重复小数的指数(例如 1/2)不同。它阻止了我在数字列表中找到完美立方体的公式。

A 列列出了从 1 到 100 的数字。

B 列有以下公式(从第 5 行开始):

=IF($A5^(1/2)-ROUND($A5^(1/2),0)=0,1,0)

如果 A 列中的数字是一个完美的正方形,如 1、4、9 等,并且正确地返回,这应该返回“1”。我最初编写的另一个公式也适用:=IF(SQRT($A8)-ROUND(SQRT($A8),0)=0,1,0)

C 列有以下公式(从第 5 行开始):

=IF($A5^(1/3)-ROUND($A5^(1/3),0)=0,1,0)

请注意,它与完美正方形的识别公式完全相同,只是在有 2 的地方出现了 3。这为完美的立方体(如 8、27)返回“1” , 64. 等(但会为数字 1 返回“1”)。

谁能帮我纠正这个问题?

【问题讨论】:

  • 这很奇怪。如果您分别计算第一部分和第二部分,则将它们设置为相等,您会得到 TRUE,但是当您减去它们并测试 if =0 时,您会得到 FALSE
  • 所以我目前的锻炼是这样的,但我不知道为什么我需要一个解决方法:=IF(INT($A5^(1/3))-ROUND($A5^(1/3),5)=0,1,0)
  • 看起来像浮点错误。
  • 你不能用$A5 - ROUND($A5^(1/3))^3替换$A5^(1/3)-ROUND($A5^(1/3)吗?
  • Floating-point arithmetic may give inaccurate results in Excel。如果您检查底层 xml,您将看到 Excel 将 A1^(1/3) 计算为 1.9999999999999998。文章解释了原因,并提出了一些解决方法。

标签: excel math formula cube


【解决方案1】:

对于不知道如何选择评论作为答案,我深表歉意,因此我汇总了有用的 cmets 并将它们发布为答案。

主要解释: 见Floating-point arithmetic may give inaccurate results in Excel。如果您检查底层 xml,您将看到 Excel 将 A1^(1/3) 计算为 1.9999999999999998。这篇文章解释了原因,并提出了一些解决方法。 ——罗恩·罗森菲尔德

我选择的解决方法: 你不能用$A5 - ROUND($A5^(1/3))^3?替换$A5^(1/3)-ROUND($A5^(1/3) - r3mainer

谢谢大家!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-05
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 2012-12-15
    相关资源
    最近更新 更多