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

解决方案 »

  1.   

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

  2.   

    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),具体你得调试一下,看看是不是负数开平方而溢出,如果是,那就是输入的问题了。
      

  3.   

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

  4.   

    运行以下程序,观察结果,希望你能看出点什么:Private Sub Command1_Click()
     Dim x As Long
     x = 0 / 0
    End Sub