为何VB代码Dim l&: l = 1000 * 60会触发Overflow错误?
VB代码溢出错误原因及解决方法
错误原因
你这段代码里的Dim l&是把变量l声明为Long(长整型),但右边的计算式1000 * 60会先以VB默认的**Integer(整型)**来运算:
- Integer类型的取值范围是
-32768 ~ 32767 1000 * 60的结果是60000,已经远超Integer的最大值32767,所以在计算这个表达式时就直接触发了Overflow溢出错误,根本轮不到把结果赋值给Long型的l。
解决方法
只需要让计算式以Long型来运算就行,有两种简单方式:
- 给其中一个常量加上Long型后缀
&:l = 1000& * 60 '1 min ' 或者 l = 1000 * 60& '1 min - 用
CLng()显式转换其中一个值为Long型:l = CLng(1000) * 60 '1 min
内容的提问来源于stack exchange,提问作者tmighty
相关产品推荐
相关产品推荐

