VB6溢出错误,大整数

时间:2011-05-05 09:58:25

标签: vb6 integer overflow

我试图设置一个整数值:

Dim intID as integer
intID = x * 10000

x为3或更低时,此功能正常。但是当x为4时,这会给我一个错误:

  

运行时错误6   溢出

我不明白为什么会这样。我可以直接将intID设置为40000而不会有任何问题,因此它显然能够存储大量数据。

enter image description here

3 个答案:

答案 0 :(得分:37)

你*不能将vb6整数设置为40000,因为它们是有符号的16位数字所以+32767是最大值。

Long是32位类型。

然而,作为一个警告,如果你是:

Dim lngID As Long
lngID = 4 * 10000

你仍然会得到一个溢出,因为文字数字默认为Integer,要纠正,只需使用&输入一个,或者使用CLng()强制转换一个:

Dim lngID As Long
lngID = 4 * 10000&
lngID = 4 * CLng(10000)

<强>更新

enter image description here

答案 1 :(得分:10)

在VB6中,整数类型是一个整数,范围从-32768到32767.

您最好在此处使用Long类型。

答案 2 :(得分:0)

在VB中,Integer变量范围是-32,768到32,767如果程序中任何变量值超过此范围,则必须声明数据类型为Long而不是Integer。

Dim intID as integer
intID = x * 10000

Dim lngID AS Long

lngID = x * CLng(10000)
' if 10000
' whatever you want to be