VB6溢出错误与大整数

我试图设置一个整数值:
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

您仍然会获得溢出,因为字面数字认为整数,以纠正只要使用&或者使用CLng()来投射一次:

Dim lngID As Long
lngID = 4 * 10000&
lngID = 4 * CLng(10000)

更新:

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...