我想将一个long转换为一个整数。我相信long的值足够低以适应整数范围。VB6将长转换为整数抛出溢出
我的代码:
'mapdc is a long
Debug.Print mapdc
Debug.Print CInt(mapdc)
第一线运行正常。它输出1107367444. 然而,第二行发生溢出错误。
任何想法? 谢谢!!!!
我想将一个long转换为一个整数。我相信long的值足够低以适应整数范围。VB6将长转换为整数抛出溢出
我的代码:
'mapdc is a long
Debug.Print mapdc
Debug.Print CInt(mapdc)
第一线运行正常。它输出1107367444. 然而,第二行发生溢出错误。
任何想法? 谢谢!!!!
A VB6 Integer
数据类型是16位。导致溢出:mapdc
的值大于32,767
,它落在Integer变量支持的值范围之外。有关VB6数据类型的更多信息,请参阅this MSDN page。
+1这是VB6和VBA数据类型的MSDN页面http://msdn.microsoft.com/zh-cn/library/aa263420(v=vs.60).aspx – MarkJ
@MarkJ - 感谢您的链接。我将它添加到我的anwser。 –
VB6整数类型的范围是-32,768到32,767。很显然,你的价值超出了这个范围并溢出。
MSDN确认通过说一个VB6整数对应于具有相同范围的Int16的.NET类型:
诠释在VB6是16位(范围为 - 32,768至32,767)。 This link提供了VB6与.Net等效的比较
奇怪的问题要问,这是非常基础的。没有涉及“铸造”,只有转换。所以这被标记错误。 – Bob77