Office 365 32位SUM公式异常:显示1,73472E-17而非0
关于Office 365 32位中SUM公式计算结果异常的解答
兄弟,这个问题我太熟了!你看到的那个1,73472E-17其实根本不是计算错误,而是浮点数精度误差在搞鬼——这几乎是所有用二进制浮点运算的软件都会碰到的小坑,Excel自然也不例外。
为啥会出现这个情况呢?你输入的那些小数(比如0,05、0,09),在二进制系统里是没法被精确表示的,就像咱们用十进制永远写不完1/3一样。Excel存储这些数值的时候,其实存的是它们的近似值,当对这些近似值做加减运算时,微小的误差就会慢慢累积,最后就冒出了这个看起来像“错误”的极小数值——本质上它就是个无限接近0的“伪误差”。
给你几个实用的解决办法:
- 要是只想让显示看起来正常,直接用
ROUND函数把结果四舍五入到你需要的小数位数就行,比如写=ROUND(SUM(A1:A12), 2),这样结果就会显示成0了。 - 也可以用
IF函数判断结果是否足够接近0,直接返回0,比如=IF(ABS(SUM(A1:A12))<1E-10, 0, SUM(A1:A12)),这里的1E-10是阈值,你可以根据自己的需求调整大小。 - 还有个简单的办法:调整单元格的数字格式,把小数位数设成你实际用到的位数,这个极小的数值也会被自动显示成0。
对了,补充一句:这个问题和Office 365的32位版本没啥直接关系,64位版本里也可能碰到,核心原因就是二进制浮点数的精度限制而已。
内容的提问来源于stack exchange,提问作者Steven Peeters
相关产品推荐
相关产品推荐

