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)
更新:
