可能是非常基本的问题,听起来像是一个非常愚蠢的问题。但是我对此感到困惑。因此,当我尝试在double变量中执行1000 * 1000时,会出现溢出错误。至于我继续乘以它自己的变量,它工作正常。有人可以解释一下,为什么?
Sub test()
Dim x As Double
x = 1000 * 1000 ' ~~>> Give OverFlow Error. WHY ?
x=1000
x = x * x * x * x ' ~~>> Works Fine
MsgBox x
End Sub
啊。VBA我多么爱你。
在这种情况下,它将1000视为整数,在VB6中为16位(最大值为32767),因此由于100万个太大而无法容纳整数而溢出。
您可以使用可怕的类型字符将文字“转换”为特定类型。
完整列表在这里。是的,该功能保留在.NET中。https://msdn.microsoft.com/zh-CN/library/s9cz43ek.aspx
Sub test()
Dim x As Double
x = 1000& * 1000& ' Long literals
x = 1000
x = x * x * x * x ' ~~>> Works Fine
MsgBox x
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句