代码之家  ›  专栏  ›  技术社区  ›  Karthik

vba宏代码问题不等于签入十进制值

  •  0
  • Karthik  · 技术社区  · 15 年前

    在宏编码中,我检查的是不等于条件。值是十进制或整数,现在我比较两个值的十进制值,但没有得到正确的结果。请指导我什么东西应该添加得到正确的结果?

     If fld4 <> fldval Then
        MsgBox "....."
     End If
    

    但消息的输出显示为以下值:

    fld4 = 0.25, fldval = 0.26
    fld4 = 0.25, fldval = 0.25
    fld4 = 0.14, fldval = 0.14
    fld4 = 0.11, fldval = 0.11
    
    1 回复  |  直到 11 年前
        1
  •  2
  •   Doc Brown    15 年前

    从来没有(!)直接比较浮点值。最好这样做:

     eps = =.00001 'choose an appropriate epsilon
     If Abs(fld4- fldval)<eps Then
       '...
    

    Look here 更多信息。

    推荐文章