我想设置一个整数值作为这样的:VB6溢出错误
Dim intID as integer
intID = x * 10000
该工程确定时x
为3或更低。但是,当x
为4,这给我的错误:
run-time error 6 Overflow
我不明白这是为什么。我可以将intID
直接设置为40000而不会有任何问题,所以它显然能够存储大量数据。
我想设置一个整数值作为这样的:VB6溢出错误
Dim intID as integer
intID = x * 10000
该工程确定时x
为3或更低。但是,当x
为4,这给我的错误:
run-time error 6 Overflow
我不明白这是为什么。我可以将intID
直接设置为40000而不会有任何问题,所以它显然能够存储大量数据。
*您不能VB6的整数,因为他们签订的16个号码,以便+32767是最大设置为40000。
Long
是32位类型。
但是作为一个警告,如果你是:
Dim lngID As Long
lngID = 4 * 10000
你仍然会得到一个溢出为面值数字默认为整数,纠正只需要输入一个只要有&
或使用投下一个长CLng()
:
Dim lngID As Long
lngID = 4 * 10000&
lngID = 4 * CLng(10000)
更新:
,整数类型是一个整数的取值范围为-32768至32767
你会在这里使用Long
型是最好的。
在VB整数变量范围是-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
请解释你的答案。您只需发布代码。 – 2015-03-04 05:04:09
在VB中整数变量范围是-32,768到32,767如果程序中任何变量值超过此范围,则必须声明数据类型为Long而不是Integer.Thanks。 – 2015-03-05 05:42:43
嗨@总是初学者,欢迎来到堆栈溢出。你是对的,解决这个问题的正确方法是使用long而不是int。感谢您提供这个答案。 – Contango 2015-04-08 15:41:14
但为什么我没有拿到一个错误与此:INTID = 40000 – Urbycoz 2011-05-05 10:10:05
在VB ** ** 6,'昏暗INTID为整数INTID = 40000'将错误的时间 – 2011-05-05 10:14:38
因为'100% 3 * 10000'适合一个整数(它的<32767),'4 * 10000'不是 – 2011-05-05 10:21:46