是VB的问题还是软件的问题?小弟快要跳楼了

kunbrother 2003-12-20 09:41:46
第一次用VB做东西就碰到这样的问题,在DELPHI或者vb.net中不敢想像的。
代码如下:
Private Sub Command1_Click()
Dim x As Long
x = 200 * 200
Label1.Caption = CStr(x)
End Sub


编译运行说:

实时错误'6':
溢出


请问这是怎么回事?不会是因为我的VB是盗版的原因吧?在线等
...全文
3 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kunbrother 2003-12-20
谢谢各位谢谢各位!


同时我对VB表示最强烈的愤慨!

我从97年学DELPHI,2000年学ASP,2002学.net ,偏偏没用过VB,这次一个小项目用VB,居然让我如此火大,亏得有各位朋友啊。
回复
SoHo_Andy 2003-12-20
修改如下
Private Sub Command1_Click()
Dim x As Long
x = 200# * 200
Label1.Caption = CStr(x)
End Sub
回复
rainstormmaster 2003-12-20
是你程序的问题:
这一句:
x = 200 * 200
存在问题
原因是200没经定义,vb认为它是integer型
两个integer型的数相乘其结果仍然为integer,而200*200=40000 超出了integer所能表示的范围,所以产生溢出

解决办法:
Option Explicit

Private 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



回复
hcj2002 2003-12-20
应该不是D版的问题
呵呵
应该是vb的问题
试试
dim x as double
x=50 * 10000 ' x=5000*10000 就没有问题
print x

也溢出。
下面这样就没有问题了
x = 200# * 200#
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7453

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告