+ -
当前位置:首页 → 问答吧 → 菜鸟+新手求助这段简单的代码为什么会溢出

菜鸟+新手求助这段简单的代码为什么会溢出

时间:2011-07-27

来源:互联网

Private Sub Command1_Click()
Dim L As Double
Dim r As Double
Dim r1 As Double
Dim x1 As Double
Dim y1 As Double
Dim k As Double
Dim x As Double
Dim y As Double
r = Val(Text1.Text)
r1 = Val(Text2.Text)
L = Val(Text3.Text)
x = Val(Text4.Text)
y = Val(Text5.Text)
k = Val(Text6.Text)
x = L / 2 + r * Cos(k + (Atn(y1 / x1)) * 180 / pi)
y = Sqr(r1 * r1 - L * L / 4) + r * Sin(k + (Atn(y1 / x1)) * 180 / pi)
PSet (x, y)
End Sub

作者: suncy0208   发布时间: 2011-07-27

那位大神来看看啊 如果该应该怎么改

作者: suncy0208   发布时间: 2011-07-27

这样试试:
r =cdbl(Text1.Text)
r1 =cdbl(Text2.Text)
L =cdbl(Text3.Text)
x =cdbl(Text4.Text)
y =cdbl(Text5.Text)
k =cdbl(Text6.Text)

作者: Leftie   发布时间: 2011-07-27

不行啊 还是溢出

作者: suncy0208   发布时间: 2011-07-27

快来人啊

作者: suncy0208   发布时间: 2011-07-27

Private Sub Command1_Click()
Dim L As Double
Dim r As Double
Dim r1 As Double
Dim x1 As Double
Dim y1 As Double
Dim k As Double
Dim x As Double
Dim y As Double
r = Val(Text1.Text)
r1 = Val(Text2.Text)
L = Val(Text3.Text)
x1 = Val(Text4.Text)
y1 = Val(Text5.Text)
k = Val(Text6.Text)
x = L / 2 + r * Cos(k + (Atn(y1 / x1)) * 180 / pi)
y = Sqr(r1 * r1 - L * L / 4) + r * Sin(k + (Atn(y1 / x1)) * 180 / pi)
PSet (x, y)
End Sub

我感觉是红色两行,因为你没有为x1赋值,则x1分母为零而溢出,况且x、y不改成x1、y1,x和y的赋值语句就没用了,不知我说的对不对。

还有个地方是Sqr(r1 * r1 - L * L / 4),具体你得调试一下,看看是不是负数开平方而溢出,如果是,那就是输入的问题了。

作者: z_wenqian   发布时间: 2011-07-27

在哪一行提示溢出?
pset(x,y) 这一行?
如果是,是因为pset()的参数为single类型的,还是很有可能溢出的

作者: whatafuckinglongname   发布时间: 2011-07-27

热门下载

更多