当前位置:编程学习 > VB >>

请教这里用Abs()为什么无效?

在下有个问题,想请达人指教!
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)反倒没有用,这是为什么呢?谢谢您的回答!
--------------------编程问答-------------------- 应该是
Abs(HaulmArray(j,   1,   4)   *   6   -   HaulmArray(j,   1,   5)) <1E-5 --------------------编程问答-------------------- 在这里,我使用Abs(HaulmArray(j,   1,   4)   *   6   -   HaulmArray(j,   1,   5) )<1E-5反倒没有用,这是为什么呢?谢谢您的回答! 
不好意思,上面的写错了。问题不变。 --------------------编程问答-------------------- 没有用可能你的数据刚好都是 结果是 false
你haulmarry怎么定义的
或者可以在for 循环下面加这句 检查下
For   j   =   1   To   NHaulm 
  debug.print abs(HaulmArray(j,1,4)-HaulmArray(j,1,5))
...
下面的不变
--------------------编程问答-------------------- HaulmArray数据应该是单精度或双精度浮点型吧。1楼说的条件没错。只是你要求的条件太高,达不到,先试试1E-2,或1E-3。 --------------------编程问答-------------------- ReDim HaulmArray(50000, Trail, NParameter) --------------------编程问答-------------------- 4 楼的分析是对的。我将ReDim   HaulmArray(50000,   Trail,   NParameter)改写为ReDim   HaulmArray(50000,   Trail,   NParameter) As double,一切都OK了。不过,我想知道ReDim   HaulmArray(50000,   Trail,   NParameter)情况下HaulmArray会自动成何种类型的数?谢谢大家! --------------------编程问答-------------------- Variant,变体类型,16字节,比double型(8字节)还长呢。
补充:VB ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,