永发信息网

我用vb6编写一个计算物理中加速度的程序,可是在运行阶段说:实时错误:6溢出。怎么办啊?求解!高手

答案:2  悬赏:10  手机版
解决时间 2021-01-14 17:17
  • 提问者网友:鼻尖触碰
  • 2021-01-13 18:00
我用vb6编写一个计算物理中加速度的程序,可是在运行阶段说:实时错误:6溢出。怎么办啊?求解!高手
最佳答案
  • 五星知识达人网友:往事隔山水
  • 2021-01-13 18:46
似乎这个可以直接写为 Text4.Text=(text1.text-text2.text)/text3.text 吧,而且所输入的内容要在没有搜狗、百度、五笔等输入法的情况下输入
全部回答
  • 1楼网友:孤独入客枕
  • 2021-01-13 19:58
因为除数c=0或太接近0,得到的x>32767(这是Integer所能存储的最大数),所以这样写可能更好:
Dim a, b, c, x As Double
Private Sub Command1_Click()
Text1.Text = a
Text2.Text = b
Text3.Text = c
if c=0 then
msgbox "除数c为0",vbCritical
else
x = (a - b) / c
end if
Text4.Text = x
End Sub追问
不行啊,按照你的代码打进去然后运行后,怎么输入数据都是

?怎么回事哦?追答因为数学中一般除数不能为0,比如1/0这种式子在初等数学中认为没有意义,电脑也一样,所以要避开这样的错误。如果你不希望弹出这样的报错对话框,那就改成:
Dim a, b, c, x As Double
Private Sub Command1_Click()
On Error Resume Next
Text1.Text = a
Text2.Text = b
Text3.Text = c
x = (a - b) / c
Text4.Text = x
End Sub追问还是不行啊……计算结果为0。但还是谢谢你了!高手!追答结果为0,是因为你没有对a,b,c进行赋值(初始的值都为0)。看样子应该是你将赋值语句写反了。那你改成这样:
Dim a, b, c, x As Double
Private Sub Command1_Click()
On Error Resume Next
a = val(Text1.Text)
b = val(Text2.Text)
c = val(Text3.Text)
x = (a - b) / c
Text4.Text = x
End Sub
这次肯定没问题追问成功了!高手!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯