我试图设置一个整数值:
Dim intID as integer
intID = x * 10000
当x
为3或更低时,此功能正常。但是当x
为4时,这会给我一个错误:
运行时错误6 溢出
我不明白为什么会这样。我可以直接将intID
设置为40000而不会有任何问题,因此它显然能够存储大量数据。
答案 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)
<强>更新强>:
答案 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