如何在VBA中处理10E22这样的非常大的数字?
dim a, b, c as double
a = 1234567890123456789012
c = a / bit
b = a - (c + 1) * bit
我得到 b = 0
按照建议,我改变dim a as double, b as double, c as double
,但它仍然关闭:
dim a as double, b as double, c as double
a = 1234567890123456789012
c = a / bit
b = a - (c + 1) * bit
我得到 b = 57344
VBA 中唯一可以处理如此大数字的数据类型是Decimal,作为 Variant 的子类型,不能直接声明,但必须强制转换为,因此您的解决方案将是:
Dim a As Variant
Dim b As Variant
Dim c As Variant
a = CDec("1234567890123456789012")
c = a / bit
b = a - (c + 1) * bit
请注意,大数字还必须写为 String,否则它会自动转换为 Double,并且在将该值转换为 Decimal 之前会丢失精度。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)