2013-04-27 64 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