VB6溢出错误,大整数

Urb*_*coz 21 vb6 integer overflow

我试图设置一个整数值:

Dim intID as integer
intID = x * 10000
Run Code Online (Sandbox Code Playgroud)

x3或更少时,这可以正常工作.但是当它x是4时,这给了我错误:

运行时错误6溢出

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

在此输入图像描述

Ale*_* K. 38

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

Long 是32位类型.

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

Dim lngID As Long
lngID = 4 * 10000
Run Code Online (Sandbox Code Playgroud)

你仍然会得到一个溢出,因为文字数字默认为Integer,为了纠正这种情况,只需输入一个&或者使用一个长期使用CLng():

Dim lngID As Long
lngID = 4 * 10000&
lngID = 4 * CLng(10000)
Run Code Online (Sandbox Code Playgroud)

更新:

在此输入图像描述

  • 在vb**6**中,`Dim intID as integer:intID = 40000`将在100%的时间内出错 (3认同)

tri*_*ett 10

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

你最好在Long这里使用这种类型.