我有以下表格:
为什么具有相同值(Get-WmiObject -Class Win32_Printer | where{$_.Network -eq ‘true‘}| foreach{$_.delete()}
& J7
)的两个单元格的差异不等于零?
答案 0 :(得分:2)
切换到该单元格上的格式/数字/科学,您可以看到剩余的值:
这些舍入误差显然是常见的。您可以使用=E3-round(E3,2)
等公式查看任何单元格:
显然,在条件格式中允许一个较小的值可以避免这个问题:
答案 1 :(得分:0)
要添加到@ df778899的答案,这不仅仅是一个常规事物"。这是浮点算术的一个不可避免的后果。
令人惊讶的是,Google显然以浮点格式表示内部数字。对于相同的数字,Excel在相等比较中给出了正确的结果,这表明与Google不同,Excel的表示是定点的。
计算机科学专业的学生总是使用FP数字的近似和非精确比较。不过,我认为从电子表格用户那里得到这一点是不合理的。
实际上,在将小数与其他小数进行比较时,请避免使用
=if(j7=j8, ...)
或EQ()。相反,使用
=if(abs(J7-J8)<0.0001, ...)
(具有适当的任意精度)