第一次用VB做东西就碰到这样的问题,在DELPHI或者vb.net中不敢想像的。
代码如下:
Private Sub Command1_Click()
Dim x As Long
x = 200 * 200
Label1.Caption = CStr(x)
End Sub
编译运行说:实时错误'6':
溢出
请问这是怎么回事?不会是因为我的VB是盗版的原因吧?在线等

解决方案 »

  1.   

    应该不是D版的问题
    呵呵
    应该是vb的问题
    试试
    dim  x as  double 
     x=50 * 10000 ' x=5000*10000 就没有问题
     print x也溢出。
    下面这样就没有问题了
    x = 200# * 200#
      

  2.   

    是你程序的问题:
    这一句:
    x = 200 * 200
    存在问题
    原因是200没经定义,vb认为它是integer型
    两个integer型的数相乘其结果仍然为integer,而200*200=40000 超出了integer所能表示的范围,所以产生溢出解决办法:
    Option ExplicitPrivate Sub Command1_Click()
        
        Dim x As Long
        x = 200& * 200&
        Label1.Caption = CStr(x)
    End Sub或
    Private Sub Command1_Click()
        
        Dim x As Long
        dim a as long
        dim b as long
        a=200
        b=200
        x = a* b
        Label1.Caption = CStr(x)
    End Sub
      

  3.   

    修改如下
    Private Sub Command1_Click()
    Dim x As Long
    x = 200# * 200
    Label1.Caption = CStr(x)
    End Sub
      

  4.   

    谢谢各位谢谢各位!
    同时我对VB表示最强烈的愤慨!我从97年学DELPHI,2000年学ASP,2002学.net ,偏偏没用过VB,这次一个小项目用VB,居然让我如此火大,亏得有各位朋友啊。