在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"","""")"