我想將一個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