Google表格的条件格式设置结果不正确

时间:2018-11-27 05:09:42

标签: google-sheets

这不是真正的程序性问题,但我不知道还有什么要问的。

enter image description here

如屏幕截图所示,我的条件格式设置为> 0红色,== 0绿色,但是只有一个单元格卡在红色上,有人知道为什么吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

正如我在上面的第一句话中所述,问题是精度。格式化为显示小数点后16位时,请与您的工作表一起看看。​​

enter image description here

实际上应该是@ViewChildren('inputs') _inputs setFocus(i){ this._inputs.toArray()[i].nativeElement.focus() } 的有问题的单元格是0.00,并且格式公式正确地将其着色为红色!

为什么?通常,在使用浮点数时,精度受存储的数字内部长度的限制,通常以64位为准。因此它们并不精确。

这意味着对浮点数进行精确比较是危险的。如您的示例所示,如果您不了解浮点数的行为,结果可能会令人惊讶。您可以在线搜索更多详细信息。问题的关键是您需要测试差异是否大于或小于某个较小的数字,例如0.0000001。对于“平等”的可行测试为0.0000000000000071054

解决方法:例如,您最简单的情况是将第23行的K列中的公式替换为abs(a-b) < 0.00000001。然后,您的条件公式将在所有情况下都可以正常工作。

相关问题