爱问知识人 爱问教育 医院库

VB高手帮帮忙

首页

VB高手帮帮忙

题目做一个袖珍计算机,运算简单的加减乘除。

我做的只能运算乘和除
加减就成了这样   1+3=13
提示说要用trim(text)函数
可是我不懂
高手帮帮忙解释一下

Private Sub Command1_Click()
Dim a, b, c As Single
a = Text1.Text
b = Text3.Text
c = Text2.Text

Select Case c
Case "*"
    d = a * b
Case "/"
    d = a / b
Case "+"
    d = a + b
Case "-"
    d = a - b
    

End Select

Text4.Text = d

End Sub

提交回答
好评回答
  • 2010-02-07 22:30:17
      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 ------------------------------------------------------- 当你熟悉越来越多的函数,认识越来越多的对象,你就可以更灵活的写你的代码 互相学习,共同进步,祝你成功。

    大***

    2010-02-07 22:30:17

类似问题

换一换
  • 软件 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):