Google 表格生成无穷小数作为整数/整数的余数

Google Sheet yields infinitesimal number as remainder of an integer/whole number

提问人:qzxrt 提问时间:11/23/2022 最后编辑:player0qzxrt 更新时间:11/23/2022 访问量:130

问:

我有这个工作表,我需要创建一个检查器来确定一个数字(将两个数字的总和除以另一个值 --DIVISOR 的结果)是否为整数/没有小数。在运行上述检查器时,它基本上工作正常,但似乎检测到一些项目不是整数,尽管它们是除数的精确倍数。

https://docs.google.com/spreadsheets/d/17-idS5G0kUI7JoHAx3qcJOiJ-zofmMrg93hUvZuxPiA/edit#gid=0

Screenshot of Google Sheet file

我有两个值(V1 和 V2),我需要将其总和除以某个数字(除数)。

我需要 OUTPUT 是整数/整数。由于除数是 SUM (V1,V2) 的倍数,因此 OUTPUT 应该是一个整数。我还扩大了小数位数,以确保小数点后没有尾随数字。

但是,在 OUTPUT 上运行 MOD 函数时,它生成了一些无穷小的值。

我还尝试截断 OUTPUT 并获取 TRUNC 和 OUTPUT 之间的差值。它产生的余数值与 MOD 结果相同。

我下载了 GSheet 并在 MS Excel 中打开了它。DIFFERENCE 结果似乎没有问题,但 MOD 函数产生了另一个值。

Screenshot of worksheet downloaded as an Excel file

google-sheets sum 浮点精度

评论

0赞 HTNW 11/23/2022
两者都不能表示为有限的二进制扩展,因此大多数程序会对它们进行舍入并引入一些错误(除了那些可以选择使用(慢得多)十进制表示的程序)。Google 表格是否可以选择将单元格标记为十进制值?将应该是整数的值舍入到整数是一种选择吗?是否有可以将每个值乘以的最大分母(例如,如果您正在处理货币,您可以选择使用美分的整数而不是美元的小数)?983386.89933.2
0赞 Ping 11/23/2022
示例电子表格未打开以供访问。
0赞 qzxrt 11/23/2022
@Ping 谢谢你的旗帜。我编辑了权限,以便任何人都可以访问它。
0赞 qzxrt 11/23/2022
@HTNW 感谢您的回复。我仍在努力消化您的答案,因此,如果有任何误解,请纠正我。首先,与有限二进制扩展有关,我在上面的链接中包含了另一个示例,其中 GSheet 设法生成了预期的结果。在我的工作表中,我有 172 行,我运行了检查器。其中,只有 7 个具有无穷小的余数,尽管是除数的精确倍数。在这 7 个实例中,我似乎找不到任何模式。
0赞 qzxrt 11/23/2022
@HTNW 其次,不确定这是否是您的意思,但我在 GSheet 中为相关单元格使用默认的“数字”格式。我也尝试使用“财务”格式,但结果是一样的。我尝试在谷歌上搜索“在 GSheet 中将单元格标记为小数”,但除了我上面提到的数字格式之外,我似乎找不到任何相关答案。第三,不幸的是,四舍五入值不是一种选择,因为我希望所有值都是某个常数的倍数,以检查数据输入中是否存在计算错误或拼写错误。

答:

2赞 player0 11/23/2022 #1

实际上,这不是一个错误,而且很常见。它被称为浮点“错误”,简而言之,它必须与十进制数在 Google 表格(甚至是 Excel 或任何其他应用程序)中的存储方式有关

更多细节可以在这里找到: https://en.wikipedia.org/wiki/IEEE_754

为了解决这个问题,您需要引入四舍五入,例如:

=ROUND(SUM(A1:A))

这不是适用于所有情况的理想解决方案,因此根据您的要求,您可能需要使用这些解决方案,而不是:ROUND

ROUNDUP
ROUNDDOWN
TRUNC
TEXT

评论

1赞 qzxrt 11/23/2022
感谢您对 Wiki 的引用。我现在目瞪口呆,像 ROUND 这样简单的函数可以解决我的问题。这实际上是由 @HTNW 建议的,但它是将值四舍五入为整数。相反,我将把数字四舍五入到小数点后两位或三位。我认为这现在有效,因为我注意到所有无穷小的余数值都达到了 10^-11 的大小。非常感谢您的帮助。
0赞 player0 11/23/2022
如果需要,@qzxrt更多(非GS)阅读材料:stackoverflow.com/questions/21895756stackoverflow.com/questions/588004
1赞 qzxrt 11/24/2022
哇,谢谢你的分享!这些是一些非常有用的读物。干杯!