VB 32-BIT 计算

来源:百度知道 编辑:UC知道 时间:2024/06/01 17:13:45
Private Sub OK_Click()
Dim Out1 As Long
Out1 = Clng(&HC4CECE69) + CLng(&H95790B27) '=15A47D990
Text1.text=Hex(Out1) '提示溢出!
End Sub

怎么样将溢出错误消除,同时将结果输出为16进制(5A47D990)
有没有简单的?感觉太麻烦!

有点繁琐,。。

Private Sub OK_Click()
'MsgBox UAdd(5, 4)
Dim Out1 As Double
Out1 = Add(HexF("C4CECE69"), HexF("95790B27")) '=15A47D990
Text1.Text = HexT(Out1) '提示溢出!

End Sub

Function Add(a As String, b As String) As String
Dim T As Long, Ta As Long
If Len(a) < Len(b) Then a = String(Len(b) - Len(a), "0") & a
Add = Space(Len(a) + 1)

For fo = Len(a) To 1 Step -1
Ta = Val(Mid(a, fo, 1)) + Val(Mid(b, fo, 1)) + T

Mid$(Add, fo + 1, 1) = (Ta) Mod 10
T = Int((Ta) / 10)
Next
If T Then Mid$(Add, 1, 1) = T
Add = Replace(Add, " ", "")
End Function

'Function UAdd(a As String, b As String) As String
'Dim T As Long, Ta As Long
'If Len(a) < Len(b) Then a = String(Len(b) - Len(a), "0") & a
'UAdd = Space(Len(a) + 1)
'
'For fo = Len(a) To 1 Step -1