vb袖珍计算机模拟程序,VB高手帮帮忙题目做一个袖珍计算机,运算简单的加减乘除我做的只 爱问知识人...

阅读: 评论:0

vb袖珍计算机模拟程序,VB高手帮帮忙题目做一个袖珍计算机,运算简单的加减乘除我做的只 爱问知识人...

vb袖珍计算机模拟程序,VB高手帮帮忙题目做一个袖珍计算机,运算简单的加减乘除我做的只 爱问知识人...

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

-------------------------------------------------------

当你熟悉越来越多的函数,认识越来越多的对象,你就可以更灵活的写你的代码

互相学习,共同进步,祝你成功。

全部

本文发布于:2024-01-31 05:00:51,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170664845225719.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23