在VB里面,为什么sgn(3>2) 会返回 -1 而不是 1
a=InStr(5,"hello!Beijing.","e")b=Sgn(3>2)c=a+bMsgBoxc这里msgboxc最后显示的为什么是7而不是9...
a = InStr(5, "hello! Beijing.", "e")
b = Sgn(3 > 2)
c = a + b
MsgBox c
这里msgbox c最后显示的为什么是7而不是9 展开
b = Sgn(3 > 2)
c = a + b
MsgBox c
这里msgbox c最后显示的为什么是7而不是9 展开
展开全部
VB中函数Sgn(数值)用来返回数值的符号,如果“数值”>0,则返回1,如果“数值”<0,则返回-1,如果“数值”=0,则返回0。现在这个式子是Sgn(3>2),这里的形式是一个关系表达式,3>2的结果显示是True,现在的关键是布尔型的数值True需要转换成数值,然后才能得到其符号的。
在VB中,布尔型数值转换成数值型时,True对应-1,False对应0,现在3>2的结果为True,对应数值为-1,相当于变成Sgn(-1),当然其结果为-1了。如果Sgn(3<2),其结果为0。
在VB中,布尔型数值转换成数值型时,True对应-1,False对应0,现在3>2的结果为True,对应数值为-1,相当于变成Sgn(-1),当然其结果为-1了。如果Sgn(3<2),其结果为0。
展开全部
你确定显示的是7?
明明是 8 吖..
a = InStr(5, "hello! Beijing.", "e")
'从hello! Beijing.第5个字符开始,寻找字符e并返回其位置
'所以a=9
b = Sgn(3 > 2)
'Sgn(X)函数有如下返回值:
'如果X>0 Sgn 返回1
'如果X=0 Sgn 返回0
'如果X<0 Sgn 返回-1
'3>2值为True <0
'所以b=-1
c = a + b
'c=9+(-1)=8
明明是 8 吖..
a = InStr(5, "hello! Beijing.", "e")
'从hello! Beijing.第5个字符开始,寻找字符e并返回其位置
'所以a=9
b = Sgn(3 > 2)
'Sgn(X)函数有如下返回值:
'如果X>0 Sgn 返回1
'如果X=0 Sgn 返回0
'如果X<0 Sgn 返回-1
'3>2值为True <0
'所以b=-1
c = a + b
'c=9+(-1)=8
追问
为什么 True<0 呢?
这点想不通...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询