下面是我自己编的VB的小程序,就是不明白为什么会是溢出问题,希望大家给点意见.谢谢.
    程序1:
    Private Sub Command1_Click()  '按钮事件
    Dim sum As Double   '每项的和
    Dim item As Double  '每项的值
    Dim n As Integer
    sum = 2 * 2 / 3
    n = 4
    item = 2 * 2 / 3
    Do While item > 0.0000001
       item = CDbl((n * n) / ((n - 1) * (n + 1)))
       sum = sum * item
       n = n + 2
    Loop
    Print sum
    End Sub
    程序2:
    Private Sub Command1_Click()
    Dim i As Integer
    Dim j As Integer
    Dim sum As Integer
    Dim k As Long
    sum = 0
    For i = 1 To 10
       k = 1
       For j = 1 To i
          k = k * j
       Next j
      sum = sum + k
    Next i
    Print sum
   End Sub
以上是我的程序,顺便问一句VB里面能不能设置成和VC里面一样自动排齐代码的.怎么做?

解决方案 »

  1.   

    1。程序算法问题,item无限趋近于1恒有item > 0.0000001,n无法收敛,又是死循环,当然溢出了! Private Sub Command1_Click()  '按钮事件
        Dim sum As Double   '每项的和
        Dim item As Double  '每项的值
        Dim n As Long'这里改了
        sum = 2 * 2 / 3
        n = 4
        item = 2 * 2 / 3
        Do While item - 1 > 0.0000001'这里改了
           item = CDbl((n * n) / ((n - 1) * (n + 1)))
           sum = sum * item
           n = n + 2
        Loop
        Print sum
        End Sub
      

  2.   

    还有一个题有问题.如下:
      
    Private Sub Command1_Click()
       Dim a As Double
       Dim b As Double
       Dim c As Double
       Dim d As Double
       Dim s As Double
       a = Tex_a.Text
       b = Tex_b.Text
       c = Tex_c.Text
       If (a < b + c) And (a > Abs(b - c)) Then
           d = (a + b + c) / 2
           s = Sqr(d * (d - a) * (d - b) * (d - c))
           Picture1.Print "三角形的面积是:"
           Picture1.Print s
       Else
           Picture1.Print "输入的三条边不能构成三角形!"
       End If
    End Sub
    如果Tex_a.Text中的内容为空的话就会出错,我如何判断Tex_a.Text中的内容为空了?