标题:变量判断问题
只看楼主
建生65
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2018-5-10
结帖率:100%
 问题点数:0 回复次数:3 
变量判断问题
    MsgBox Xsurface(q): MsgBox Xsurface(q + 1)
    MsgBox Xr
    If (Xr >= Xsurface(q) And Xr <= Xsurface(q + 1)) Then
        msgbox "1"
    else
        msgbox "0"
    end if
    前面输出的变量值分别为:-2.235;-1.55;-2.235
    运行程序输出的结果是0,即程序认为if的条件为假;

    为查找错误,新建了一个vb如下:
    Private Sub Form_Load()
        Dim a, b, c As Double
        a = -2.235: b = -2.235: c = -1.55
        If (b >= a And b <= c) Then
            Text1.Text = 1
        Else
            Text1.Text = 0
        End If
    End Sub
    新建的这个text1.text为1,即程序认为if条件为真;有老哥遇到过相同的情况吗?望不吝赐教,谢谢
搜索更多相关主题的帖子: 变量 判断 MsgBox if Text1 
2018-07-04 16:40
wufuzhang
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:贵宾
威 望:21
帖 子:206
专家分:1346
注 册:2017-8-9
得分:0 
你的Xsurface()数组或者Xr参数不是数值类型,所以比较后为False
改正:If (Val(Xr) >= Val(Xsurface(q)) And Val(Xr) <= Val(Xsurface(q + 1))) 就OK了

不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2018-07-04 19:58
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
得分:0 
没有看到你定义的 Xr 变量的数据类型, Xsurface() 数组的数据类型,如果 Xr 变量的数据类型是数字, Xsurface() 数组的数据类型也是数字,那么就不应该出错,判断应该是正确的。
你说的:前面输出的变量值分别为:-2.235;-1.55;-2.235,到底哪一个是多少就不知道了(因为无法知道它们的前后顺序),因此你的判断是否是值的问题,从而出现假?
比如:Xr = -2.235, Xsurface(q) = -1.55, Xsurface(q+1) = -2.235,那么判断是 If (-2.235 >= -1.55 And -2.235 <= -2.235) Then ,-1.55肯定大于-2.235,肯定是假的咯!

请不要选我!!!
2018-07-05 14:40
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
Dim a, b, c As Double

这里有问题。

VB必须显式说明每个变量的类型,VB不支持 C那种一次写多个变量,后面跟一个 变量类型的说明。
所以上面定义后,
a 和 b 的数据类型是:Variant
c 的数据类型是 Double

然后给值
a="1"
b=1
if a=b then msgbox "1" else msgbox "2"

显示的结果是 2

-----------------
我赞同2楼的观点


授人于鱼,不如授人于渔
早已停用QQ了
2018-07-05 16:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-488374-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036932 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved