我正在尝试设置一个整数值,如下所示:
Dim intID as integer
intID = x * 10000
当x
为 3 或更少时,此方法可以正常工作。但是当x
是4时,这给了我错误:
run-time error 6 Overflow
我不明白这是为什么。我可以直接将intID
设置为40000,没有任何问题,所以它显然能够存储大量数字。
最佳答案
您不能将 vb6 整数设置为 40000,因为它们是带符号的 16 位数字,因此 +32767 是最大值。
Long
是 32 位类型。
但是请注意,如果您要:
Dim lngID As Long
lngID = 4 * 10000
您仍然会遇到溢出,因为文字数字默认为 Integer,要更正该问题,只需使用 &
键入 1 as long 或使用 CLng()
强制转换 1 as long:
Dim lngID As Long
lngID = 4 * 10000&
lngID = 4 * CLng(10000)
更新:
关于VB6 大整数溢出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5895816/