在excel中的不平等失败了

我的电子表格中的以下行失败:

Cells(21, 7).Formula = "=IF(OR(ABS(F21-B21)>C21+0.0001,F21=""""),""NG"","""")" 

我比较两个数字,当F21-B21 = C21那么下面的代码显示NG。 0.0001的join意味着减轻这个错误,但是它不起作用。

我相信这是因为Excel可能不是将C21视为确切的数字(即0.08),而是将其视为0.0834892379或其他一串长串数字。

这可能吗? 或者,还有什么可能是错的? 如果需要其他信息,请告诉我。

我想检查的不平等是:

ABS(F21-B21)> = C21

MW

要testing两个值是否与ε值相等,可以减去这些值,然后将它们与epsilon进行比较:

 Cells(21, 7).Formula = "=IF(OR(ABS(F21-B21-C21)<0.0001,F21=""""),""NG"","""")" 

如果您打算testingABS(F21-B21)是否等于C21 ,请使用

 Cells(21, 7).Formula = "=IF(OR(ABS(ABS(F21-B21)-C21)<0.0001,F21=""""),""NG"","""")" 

为了比较一个ε内的ABS(F21-B21)> = C21,可以比较差异与负ε:

 Cells(21, 7).Formula = "=IF(OR((ABS(F21-B21)-C21)>=-0.0001,F21=""""),""NG"","""")" 

或者,您可以将结果舍入。 例如,要testing它是否在小数点后5位以内> = C21:

 Cells(21, 7).Formula = "=IF(OR(ROUND(ABS(F21-B21),5)>=C21,F21=""""),""NG"","""")"