搜索
首页 电脑/网络 软件

VB高手帮帮忙

  题目做一个袖珍计算机,运算简单的加减乘除。我做的只能运算乘和除加减就成了这样 1+3=13提示说要用trim(text)函数可是我不懂高手帮帮忙解释一下Private Sub Command1_Click()Dim a, b, c As Singlea = Text1。
  Textb = Text3。Textc = Text2。TextSelect Case cCase "*" d = a * bCase "/" d = a / bCase "+" d = a + bCase "-" d = a - b End SelectText4。
  Text = dEnd Sub。

全部回答

2010-02-07

0 0

    Dim a, b, c As Single 这个声明不合适,它表示a和b为变体(Variant),只有c是Single 应该改为: Dim a As Single, b As Single, c As String a和b是Single,c是运算符,所以不能是Single了,只能是变体或字符串 由于你本来的声明方式使vb误以为a和b是变体,同时因为a和b来自TextBox,是文本类型,所以默认被当做String 当计算乘除法和减法时,由于String型的数据不接受这几种运算符,经vb辩认,这个变体的内容可以被理解为一个数字,所以可以正常运算,而当计算加法时,由于vb的字符串连接符可以同时使用&和+,所以优先将a和b相连,也就会有1+3=13的情况发生了 经过修改,a和b被声明为Single,所以运算时就会优先使用算术运算符,就可以计算出正确的加法结果了 ------------------------------------------------------- 另外,如果保持a和b是变体,可以把其中一个操作数转为数字,也可以得到正确结果,比如只把: d = a + b 一句改为 d=a+val(b) 这样一来,指定了其中一个操作数是数字时,vb也会优先使用算数运算符+(而不是string连续符+)来运算了 顺便强调一下,前面说过,c As Single是不对的,c是运行符,只能是变体或字符串 ------------------------------------------------------- 再另外,你可以试试这样做: Private Sub Command1_Click() Dim a As Single, b As Single, c As String a = Text1。
    Text b = Text3。Text c = Text2。Text Text4。Text = Switch(c = "*", a * b, c = "/", a / b, c = "+", a + b, c = "-", a - b) End Sub 如果不明白Switch为什么可以替换掉Select Case代码段,可以查MSDN ------------------------------------------------------- 再再另外,你还可以这样: Private Sub Command1_Click() Dim calc As Object Set calc = CreateObject("MSScriptControl。
    ScriptControl") calc。Language = "vbscript" Text4 = calc。
    Eval(Text1 & Text2 & Text3) End Sub ------------------------------------------------------- 当你熟悉越来越多的函数,认识越来越多的对象,你就可以更灵活的写你的代码 互相学习,共同进步,祝你成功。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
软件
程序设计
电脑装机
操作系统/系统故障
硬件
笔记本电脑
百度
互联网
反病毒
软件
软件
多媒体软件
系统软件
办公软件
网络软件
图像处理软件
举报
举报原因(必选):
取消确定举报