VB编程的错误等等问题...

来源:百度知道 编辑:UC知道 时间:2024/07/07 23:43:09
我朋友教我编了个简单计算器

Private Sub Command1_Click()
Text3.Text = ""
Text2.Text = ""
Text1.Text = ""
End Sub

Private Sub Command2_Click()
Dim x As Integer
Dim y As Integer
x = Text1.Text
y = Text2.Text
Text3.Text = x + y
End Sub

Private Sub Command3_Click()
End
End Sub

Private Sub Command4_Click()
Dim x As Integer
Dim y As Integer
x = Text1.Text
y = Text2.Text
Text3.Text = x - y
End Sub

Private Sub Command5_Click()
Dim x As Integer
Dim y As Integer
x = Text1.Text
y = Text2.Text
Text3.Text = x * y
End Sub

Private Sub Command6_Click()
Dim x As Integer
Dim y As Integer
x = Text1.Text
y = Text2.Text
Text3.Text = x / y
End Sub

Private Sub Form_Load()

End Sub

这是代码

我弄好后,运行了,什么也不填,直接按 加、减、乘或除

就会出错

如果不在文本框中输入数据,那么x,y是空,进行数值的+-*/运算当然出错了
可以这样写,x = val(Text1.Text),y=val(Text1.Text),类型不匹配是因为文本框是字符类型,要转换为数值才可以,用函数val
数值大了可以改变数据类型为double
双精度型(Double) 用8个字节(64位)存储,其中,符号占l位,指数占11位,其余52位用来表示尾数,此外,还有一个附加的隐含位。双精度型的数据可以精确到15或16位十进制数。其负数的范围为-1.797693134862316D+308~-4.94065D-324,正数的范围为4.94065D-324~-1.797693134862316D+308。
应该够用了
给出出错信息可以这样写
if x>1.797693134862316D+308 then msgbox "数值太大了"
if x<-1.797693134862316D+308 then msgbox "数值太小了"

当然 你从text内得到的是字符串 而你要运算的是传说中的整型 这样自然类型布匹配 你可以吧所有的
x = Text1.Text
y = Text2.Text
改成
x = CLng(Text1.Text)
y = CLng(Text1.Text)
当然这是转化成了长整型
定义
Dim x As Integer
Dim y As Integer
也要变
Dim x As Long
Dim y As Long
这样就可以了
两个问题都解决了