我想設置一個整數值作爲這樣的: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