变体双子类型超过最大值



当我在看"变量数据类型"文档时,它说具有double子类型的变量可以支持最大值"1.79769313486232E308"(15位)的正值"当包含货币、十进制和双精度值的变量超出各自的范围时,会发生错误。"但是,当我运行以下代码时:

y = 999999999999999999999999999
y = CStr(CDBL(y))
MsgBox y

我没有收到一个错误,相反,我得到一个msgbox,输出如下:"1e+27"(27是y中的位数)。

对此的解释是什么?"y"是如何存储在内存中的?

我在变体文档和CDbl函数文档中都没有找到答案。

谢谢。

在给变量赋值一个数值数量时,vbscript运行时将选择可能的最佳变量类型来匹配该数量。

在你的例子中,字面值对于整型来说太大了,所以它将其分配给double"子类型"。

将此大小的双精度数转换为字符串将得到一个科学记数法的字符串。

关于你的文件

"1.79769313486232E308"(15位)

有点误导。将其读取为15 有效数字,这是浮点double精度类型的精度级别。

相关内容

  • 没有找到相关文章

最新更新