| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1289 人关注过本帖
标题:请教 溢出错误 应该怎么改 纯小白
只看楼主 加入收藏
sclx88
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2016-7-31
结帖率:100%
收藏
 问题点数:0 回复次数:7 
请教 溢出错误 应该怎么改 纯小白
Private Sub Command1_Click()
Text4 = a / b
Text5 = Sin(Val(Text1.Text) * pi / 180)
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Dim a As Double
Dim b As Double
a = Sqr(Val(Text1.Text))
b = Val(Text2.Text) + Val(Text3.Text)
End Sub

来人教教阿,别光看不理我阿~~~
还有那个text5为什么老显示0

[此贴子已经被作者于2016-8-1 15:16编辑过]

2016-08-01 12:54
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:938
专家分:5244
注 册:2015-8-10
收藏
得分:0 
pi 应该是为0的,你可以加中断看一下。VB中没有这个默认的变量或者函数
改成这样试试
程序代码:
Private Sub Command1_Click()
Text4 = a / b
pi=3.1415926
Text5 = Sin(Val(Text1.Text) * pi / 180)
End Sub
2016-08-01 15:21
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:938
专家分:5244
注 册:2015-8-10
收藏
得分:0 
更准确的话可以换成 pi=4 * atn(1)
2016-08-01 15:22
sclx88
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2016-7-31
收藏
得分:0 
回复 3楼 xiangyue0510
谢谢,这个text5正常了,text4这个运算不了是啥原因呢
2016-08-01 15:55
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:938
专家分:5244
注 册:2015-8-10
收藏
得分:0 
以下是引用sclx88在2016-8-1 15:55:57的发言:

谢谢,这个text5正常了,text4这个运算不了是啥原因呢

Text4 = a / b从这句来看,也是一样。 没有看到a、b的赋值语句。除非你是全局变量其他地方赋值,没有把代码贴上来的,否则就是0/0
2016-08-01 16:21
syx54
Rank: 2
等 级:论坛游民
帖 子:11
专家分:18
注 册:2008-8-12
收藏
得分:0 
分析:
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Dim a As Double
Dim b As Double
a = Sqr(Val(Text1.Text))
b = Val(Text2.Text) + Val(Text3.Text)
那么:Text1.Text,Text2.Text,Text3.Text,转换成数值,都为0
a / b,那就是 0 / 0 ,数学上的概念分母不可以0
2016-08-02 11:05
pengzhanggui
Rank: 5Rank: 5
等 级:职业侠客
威 望:8
帖 子:161
专家分:344
注 册:2015-7-20
收藏
得分:0 
debug一下不就得了

来找我试试看
2016-08-02 21:22
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:0 
第一个问题:
程序代码:
Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Dim a As Double   '你定义的的是过程级变量
Dim b As Double   '你定义的的是过程级变量
a = Sqr(Val(Text1.Text))   '前面 Text1.Text = ""了。那么a的值应该是0
b = Val(Text2.Text) + Val(Text3.Text)   '前面 Text2.Text = ""、Text3.Text = ""了。那么b的值应该是0
End Sub

第二个问题:
Private Sub Command1_Click()
Text4 = a / b    '变量a、b无值,不存在!
Text5 = Sin(Val(Text1.Text) * pi / 180)   '变量pi=0,因此,Text5。Text=0
End Sub

修改代码:
程序代码:
Dim a As Double   '必须定义为模块级变量
Dim b As Double   '必须定义为模块级变量
Dim pi As Single    '定义pi变量

Private Sub Command1_Click()
pi = 3.1415926
If Val(Text1.Text) < 0 Then   '判断Text1的值
    MsgBox "Text1的值必须大于0"
    Exit Sub
End If
If Val(Text2.Text) = 0 Then   '判断Text2的值
    MsgBox "Text2的值必须不能等于0"
    Exit Sub
End If
If Val(Text3.Text) = 0 Then   '判断Text3的值
    MsgBox "Text3的值必须不能等于0"
    Exit Sub
End If
'经过上面的判断,下面运算才不会出错!
a = Sqr(Val(Text1.Text))   '在这里赋值
b = Val(Text2.Text) + Val(Text3.Text)   '在这里赋值
Text4 = a / b    '这样a、b才会有值
Text5 = Sin(Val(Text1.Text) * pi / 180)   '变量pi=0,因此,Text5。Text=0
End Sub

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

请不要选我!!!
2016-08-06 12:29
快速回复:请教 溢出错误 应该怎么改 纯小白
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021051 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved