Dim num1
Dim num2
num1 = 353999257654394887936255
num2 = 3539992576543948861696211
定义成long会溢出不设置类型 它返回的好像是string,结果比较的时候num1 > num2 = true该怎么定义这个数据类型呢?
Dim num2
num1 = 353999257654394887936255
num2 = 3539992576543948861696211
定义成long会溢出不设置类型 它返回的好像是string,结果比较的时候num1 > num2 = true该怎么定义这个数据类型呢?
Dim num1 As String
Dim num2 As String
num1 = "353999257654394887936255"
num2 = "3539992576543948861696211"
MsgBox Val(num1) > Val(num2)
End Sub
单用val()比较,不正确.
353999257654394887936255
353999257654394886169621 比较时,不管是>还是<, 都是false
Currency 数据类型
Currency 变量存储为 64 位(8 个字节)整型的数值形式,然后除以 10,000 给出一个定点数,其小数点左边有 15 位数字,右边有 4 位数字。这种表示法的范围可以从 -922,337,203,685,477.5808 到 922,337,203,685,477.5807。Currency 的类型声明字符为at号 (@)。Currency 数据类型在货币计算与定点计算中很有用,在这种场合精度特别重要。
Dim num1 As Variant
Dim num2 As Variant
num1 = "3539992576543948879362551"
num2 = "3539992576543948861696211"
MsgBox CDec(num1) > CDec(num2)
End Sub
v = CDec("3539992576543948879362551")
Debug.Print Str(v)