在vb中 val(text) 与 text 有什么区别 ?比如下面的例子 急求!!谢谢各位了

rivateSubCommand1_Click()Dima,b,ca=val(Text1)b=val(Text2)c=val(Text3)Ifa+b>cAnda+c>bA... rivate Sub Command1_Click()
Dim a, b, c
a = val(Text1)
b = val(Text2)
c =val( Text3)
If a + b > c And a + c > b And b + c > a Then
If a = b And b = c Then
Text4 = "等边三角形"
ElseIf a = b Or a = c Or b = c Then
Text4 = "等腰三角形"
Else
Text4 = "任意三角形"
End If
Else: Text4 = "不能构成"
End If
End Sub

假如定义时 都定义为 a=text 1… b=text2…… c=text3… 时 当输入 2,2 ,3时 显示 等腰三角形,,当输入3,2,2 或 2,3,2显示 不能构成 为什么???
展开
 我来答
syht2000
高粉答主

2011-12-05 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
val就是将字符串转为数值型,如果不用val转换,你的a+b这种表达式就会被系统理解为两个字符串的合并,比如text1输入2,text2输入2,那a+b结果就是22而不是你要的4
要进行测试的话,你可以再添加一个commandbutton按钮,双击它加入下面代码
Private Sub Command2_Click()
MsgBox Text1 + Text2
MsgBox Val(Text1) + Val(Text2)
End Sub
看一下结果就知道了。

这个题最根本的问题是你在定义变量的时候,需要将abc均定义为integer,后面就不会引起这种问题了,也就是
Dim a as integer, b as integer, c As Integer
牛人影视
2011-12-05 · TA获得超过1395个赞
知道大有可为答主
回答量:1491
采纳率:0%
帮助的人:1614万
展开全部
问题的本质是因为你定义变量的时候,没有指定数据类型。
a=text,b=text2......,此时 a,b是字符串 "a","b",
而 a+b ,因为 a 和 b 是字符串,所以这个时候的加号就是连接符,相当于 &
所以如果 a="3",b="2" 时,a+b 的结果是 "3" & "2"="32",而不是3+2=5
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
有手艺的农民
2011-12-05 · TA获得超过1610个赞
知道小有建树答主
回答量:1191
采纳率:33%
帮助的人:742万
展开全部
text默认的是文字,比如说:text3.text=text2.text+text1.text。如果text1是1,text2是2,如果不用val的话,text3等于的就是12,如果用val(转换成数值)话,就等于3.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
475379221
2011-12-05 · TA获得超过215个赞
知道小有建树答主
回答量:233
采纳率:0%
帮助的人:109万
展开全部
Text1是一个控件,你输入的内容是字符串类型的变量,而 val(Text2)是将串的值转化了~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangtingze2008
2011-12-05 · TA获得超过400个赞
知道小有建树答主
回答量:839
采纳率:50%
帮助的人:377万
展开全部
val转化成数值。
不要用elseif了。
2种情况分开写。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式