Visual Basic 6代码中的运行时溢出错误

时间:2013-04-27 11:20:41

标签: vb6

以下Visual Basic 6.0代码 - SP2给出了溢出错误。有人能解释一下原因吗?

Private Sub Form_Click()

  Dim Qty as Long

  Qty= 290 * 113       '' 112 is working fine

  MsgBox Qty

End Sub

1 个答案:

答案 0 :(得分:8)

表达式的类型由其成员决定,而不是由它将存储的变量决定。

113输入为Byte 290被输入为Integer,因为它不适合一个字节。

由于最大的相关类型为Integer,因此整个表达式290 * 113的类型为IntegerInteger最多可包含32767,小于290 * 113

因此,在将结果存储到Long变量之前,它会在乘法时溢出。

明确键入至少一个数字Long

Qty = 290& * 113