VB6将Long转换为Integer抛出溢出

时间:2011-09-28 17:33:51

标签: vb6 casting integer long-integer

我正在尝试将long转换为整数。我相信long的值足够低以适应整数范围。

我有代码:

'mapdc is a long
Debug.Print mapdc
Debug.Print CInt(mapdc)

第一行运行良好。它输出1107367444。 但是第二行会导致溢出错误。

有什么想法吗? 致谢!!!!

3 个答案:

答案 0 :(得分:7)

VB6 Integer数据类型是16位。导致溢出:mapdc的值大于32,767,它超出了Integer变量支持的值范围。有关VB6数据类型的更多信息,请参阅this MSDN page

答案 1 :(得分:5)

VB6 Integer类型的范围是-32,768到32,767。显然,你的价值超出了这个范围而且溢出了。

Data Types - VB 6 tutorial

MSDN确认VB6 Integer对应于具有相同范围的Int16的.NET类型:

Integer Data Type for Visual Basic 6.0 Users

答案 2 :(得分:3)

VB6中的Int是16位(范围从-32,768到32,767)。 This link提供了VB6与.Net等价物之间的比较