如果我尝试计算LibreOffice Calc或者OpenOffice.org Calc,结果是错误的。看看这两个例子,我计算了 13^18,
使用 LibreOffice Calc
使用 OpenOffice.org Calc
两种情况下的结果都是错误的,我们可以用计算器发现(gcalctool)。
以上所有测试都是在 Ubuntu 上进行的。我无法评论MS Office 中的 Excel因为我无法访问它。
现在,使用计算器是可能的,但很麻烦。我需要用五百多个值来填满一个表格。我知道我可以求助于欧拉定理或者 费马小定理或这些的推论,但实际上我将使用前面提到的表格来展示这些定理的数值有效性(和用途)。
有没有办法让电子表格程序给出正确的结果?
答案1
有没有办法让电子表格程序给出正确的结果?
可能不会。
Excel 当然是了,而且我预计其他电子表格程序(为了兼容 Excel)也会使用基于 64 位 IEEE 格式的浮点数。这是在大多数当前 CPU 的硬件中实现的,因此速度很快(即使是中等大小的电子表格也需要进行大量计算)。
但浮点数是有限大小的表示,因此只能表示实数的有限子集。其他所有内容要么是近似值,要么会导致错误情况。
关于该限制的细节已被广泛记录(例如每位计算机科学家都应该了解的浮点运算),但这些很快就变得技术化了。
答案2
如果您是 Excel 用户,您可以尝试 xNumbers。这是一款免费插件,您可以在Excel 的 Xnumbers