2013-04-27 84 views
2

Visual Basic 6.0的以下代碼 - SP2出現溢出錯誤。有人可以解釋爲什麼嗎?Visual Basic 6代碼中的運行時溢出錯誤

Private Sub Form_Click() 

    Dim Qty as Long 

    Qty= 290 * 113  '' 112 is working fine 

    MsgBox Qty 

End Sub 
+5

作爲一個側面說明,你可能要考慮[服務包6](http://www.microsoft.com/en-us /download/details.aspx?id=5721)。 – GSerg 2013-04-27 11:41:13

回答

7

113被輸入爲Byte
290被輸入爲Integer,因爲它不適合字節。

表達式290 * 113因此被鍵入爲IntegerInteger最多可包含32767,其小於290 * 113

因此,在將結果存儲到變量Long之前,它會在乘法運算時溢出。

明確鍵入至少其中一個號碼爲Long

Qty = 290& * 113 
+1

+1擊敗我,儘管我認爲'!'是長型指標。過了一段時間以來,自VB6雖然:) – 2013-04-27 11:28:57

+0

感謝您的快速反應GSerg。我也在http://vbcity.com/forums/t/42020.aspx找到答案。無論如何非常感謝您的幫助! – user2326679 2013-04-27 11:35:00

+1

@JoachimIsaksson'!'後綴是'SINGLE' 32位浮點變量。 – MrSnrub 2013-04-27 13:25:05