对付天文数字运算有没有什么办法解决方法

对付天文数字运算有没有什么办法一计算就溢出的[解决办法]如果是相与就比较简单:Function BigAnd(ByVal v1

对付天文数字运算有没有什么办法
一计算就溢出的

[解决办法]
如果是相与就比较简单:

Function BigAnd(ByVal v1 As Variant, ByVal v2 As Variant) As Variant
Dim dec1 As Variant
Dim dec2 As Variant
Dim dec3 As Variant
Dim block1 As Variant
Dim block2 As Variant
'不支持小数、负数
dec1 = CDec(Int(Abs(CDec(v1))))
dec2 = CDec(Int(Abs(CDec(v2))))

While (dec1 > 0#) And (dec2 > 0#)
dec1 = BigDiv(dec1, &H10000, block1)
dec2 = BigDiv(dec2, &H10000, block2)

dec3 = dec3 * CDec(&H10000) + CDec(CLng(block1) And CLng(block2))
Wend

BigAnd = dec3
End Function

Function BigDiv(ByVal divident As Variant, ByVal divisor As Variant, ByRef remainder As Variant) As Variant
BigDiv = CDec(Int(CDec(divident) / CDec(divisor)))
remainder = CDec(divident) - BigDiv * CDec(divisor)

Debug.Print divident & " / " & divisor & " = " & BigDiv & " | " & remainder
End Function

测试:
?BigAnd( "9223635954298781951 ",1)
1