我有这个工作表,我需要在其中创建一个检查器来确定一个数字(两个数字之和除以另一个值 --DIVISOR 的结果)是否是整数/没有小数。运行上述检查器后,它大部分工作得很好,但似乎检测到一些项目不是整数,尽管它们是除数的精确倍数。
https://docs.google.com/spreadsheets/d/17-idS5G0kUI7JoHAx3qcJOiJ-zofmMrg93hUvZuxPiA/edit#gid=0 https://docs.google.com/spreadsheets/d/17-idS5G0kUI7JoHAx3qcJOiJ-zofmMrg93hUvZuxPiA/edit#gid=0
我有两个值(V1 和 V2),我需要将其总和除以某个数字(除数)。
我需要输出是一个整数/整数。由于 DIVISOR 是 SUM (V1,V2) 的倍数,因此 OUTPUT 应该是整数。我还扩大了小数位数,以确保小数点后没有尾随数字。
然而,在输出上运行 MOD 函数时,它生成了一些无穷小的值。
我还尝试截断输出并获取截断和输出之间的差异。它产生与 MOD 结果相同的余数。
我下载了 GSheet 并在 MS Excel 中打开它。 DIFFERENCE 结果似乎没有问题,但 MOD 函数却产生了另一个值。
实际上,这不是一个错误,而且很常见。它被称为浮点“错误”,简而言之,它必须与十进制数字在谷歌表格中的存储方式有关(甚至excel http://support.microsoft.com/kb/78113或任何其他应用程序)
更多详情可在这找到:https://en.wikipedia.org/wiki/IEEE_754 https://en.wikipedia.org/wiki/IEEE_754
为了解决这个问题,您需要引入舍入,例如:
=ROUND(SUM(A1:A))
这并不是适合所有情况的理想解决方案,因此根据您的要求,您可能需要使用这些而不是ROUND
:
ROUNDUP
ROUNDDOWN
TRUNC
TEXT
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)