当我查看“变体数据类型”文档时,它说具有 double 子类型的变体可以支持最大“1.79769313486232E308”(15 位数字)的正值,并且
“当包含货币、小数和双精度值的变体变量超出其各自的范围时,会发生错误。”
但是,当我运行以下代码时:
y = 999999999999999999999999999
y = CStr(CDBL(y))
MsgBox y
我没有收到错误,而是收到一个带有以下输出的消息框:“1e+27”(27 是 y 中的位数)。
对此有何解释? “y”如何存储在内存中?
我在变体文档和 CDbl 函数文档中都没有找到答案。
Thanks.
将数字数量分配给变体时,vbscript 运行时将选择最佳的变体类型来匹配该数量。
在您的情况下,文字对于整型来说太大,因此它将它分配给double
“亚型”。
将此大小的双精度数转换为字符串将产生科学计数法形式的字符串。
至于你的文档
“1.79769313486232E308”(15 位数字)
有点误导。读作 15有效数字这大约是浮点的精度级别double
精密型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)