Private Sub Command1_Click() Dim a As Integer, b As Integer, c As Integer On Error GoTo errp a = 200: b = 200 c = a * b Debug.Print c Exit Sub errp: 'Debug.Print Err.Number, Err.Description If Err.Number = 6 Then c = -CInt(65536 - CLng(a) * CLng(b)) Resume Next 'c = 40000 > 32767(15位) '这样会提示溢出 '而在C语言中,c的结果则是对40000对应的最高位还要高的位取反(即结果是-25536) End Sub
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
On Error GoTo errp
a = 200: b = 200
c = a * b
Debug.Print c
Exit Sub
errp:
'Debug.Print Err.Number, Err.Description
If Err.Number = 6 Then c = -CInt(65536 - CLng(a) * CLng(b))
Resume Next
'c = 40000 > 32767(15位)
'这样会提示溢出
'而在C语言中,c的结果则是对40000对应的最高位还要高的位取反(即结果是-25536)
End Sub
你是用的vB6.0吧,如果是VB.Net的话它是-2147483647到+2147483647.
你是用的vB6.0吧,如果是VB.Net的话它是-2147483647到+2147483647.这个帖子讨论的不就是VB6么