在下有个问题,想请达人指教!
For j = 1 To NHaulm
        
            If HaulmArray(j, 1, 4) * 6 = HaulmArray(j, 1, 5) Then
        
                Picture1.Line (HaulmArray(j, 1, 1), HaulmArray(j, 1, 3))-(HaulmArray(j, 2, 1), HaulmArray(j, 2, 3)), &HFF ' &HFF00 '&HFF0000
            
            Else
        
                Picture1.Line (HaulmArray(j, 1, 1), HaulmArray(j, 1, 3))-(HaulmArray(j, 2, 1), HaulmArray(j, 2, 3)), &HFF00 '&HFFFFFF
            
            End If
                
        Next j
在这里,我使用Abs(HaulmArray(j, 1, 4) * 6 - HaulmArray(j, 1, 5)<1E-5)反倒没有用,这是为什么呢?谢谢您的回答!

解决方案 »

  1.   

    应该是
    Abs(HaulmArray(j,   1,   4)   *   6   -   HaulmArray(j,   1,   5)) <1E-5
      

  2.   

    在这里,我使用Abs(HaulmArray(j,   1,   4)   *   6   -   HaulmArray(j,   1,   5) )<1E-5反倒没有用,这是为什么呢?谢谢您的回答! 
    不好意思,上面的写错了。问题不变。
      

  3.   

    没有用可能你的数据刚好都是 结果是 false
    你haulmarry怎么定义的
    或者可以在for 循环下面加这句 检查下
    For   j   =   1   To   NHaulm 
      debug.print abs(HaulmArray(j,1,4)-HaulmArray(j,1,5))
    ...
    下面的不变
      

  4.   

    HaulmArray数据应该是单精度或双精度浮点型吧。1楼说的条件没错。只是你要求的条件太高,达不到,先试试1E-2,或1E-3。
      

  5.   

    ReDim HaulmArray(50000, Trail, NParameter)
      

  6.   

    4 楼的分析是对的。我将ReDim   HaulmArray(50000,   Trail,   NParameter)改写为ReDim   HaulmArray(50000,   Trail,   NParameter) As double,一切都OK了。不过,我想知道ReDim   HaulmArray(50000,   Trail,   NParameter)情况下HaulmArray会自动成何种类型的数?谢谢大家!
      

  7.   

    Variant,变体类型,16字节,比double型(8字节)还长呢。