gpt4 book ai didi

google-sheets - 添加时出现有趣的(四舍五入?)错误

转载 作者:行者123 更新时间:2023-12-04 02:07:40 26 4
gpt4 key购买 nike

一列有数字(总是有 2 位小数,有些是计算出来的,但所有乘法和除法四舍五入到 2 位小数),另一列是累积的。累计列有公式=<above cell>+<left cell> .

在累积列中,结果是 58.78,第一列中的下一个数字是 -58.78。由于零的格式与正数或负数的格式不同,我发现有些问题。将格式更改为几个小数,数字显示为:

                                    £58.780000000000000000000000000000
-£58.780000000000000000000000000000 £0.000000000000007105427357601000

非零零大约是 2^(-47)。另一种情况下的数字是:
                                    £50.520000000000000000000000000000
-£50.520000000000000000000000000000 -£0.000000000000007105427357601000

怎么会这样?

另外,如果我将累积列中的单元格更改为实际数字 58.78,结果会突然变为零。

最佳答案

Google Sheets 使用 double 浮点运算,其中 creates such artifacts .此格式的相对精度为 2^(-53),因此对于 2^6 = 64 左右的大小,我们预计会出现 2^(-47) 截断误差。

一些电子表格用户会担心,如果他们发现“58.78”实际上不是 58.78,因为这个数字不允许以这种浮点格式进行精确表示。因此,电子表格隐藏了真相,四舍五入显示的数字并在要求更多数字时打印假零。 58.78 之后的那些零是假的。

当您减去两个看似相同但实际上并不相同的数字时,真相就会浮出水面——因为它们的计算方式不同,例如一个是作为总和获得的,而另一个是通过直接输入获得的。将减法的结果四舍五入为零将是一个谎言:这不再是一个小的相对误差问题,2^(-47) 和 0 之间的差异可能是一个重要的问题。因此,幕后机制的意外揭示。

另见:Why does Google Spreadsheets says Zero is not equals Zero?

关于google-sheets - 添加时出现有趣的(四舍五入?)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41859616/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com