在VB6中,出现溢出错误的可能原因是什么?我正在使用字符串。
是RAM还是硬盘空间?或者它是VB6内部的东西?
答案 0 :(得分:2)
我将在黑暗中采取刺戳,一些代码将有助于Hogan说。通常,当VB6处理数学公式中的整数或长整数时,字符串会发生溢出错误,结果对于整数或长整数来说太大了。
根据公式的性质,您可以通过在末尾添加“.0”强制系统将数字用作浮点来避免问题。否则使用各种Cxxx函数显式转换数字到具有更大范围的类型。
您考虑的一点是浮点不如整数整数精确,因此请确保在进行转换时不会丢失所需的精度。
答案 1 :(得分:1)
另一个'刺',因为没有提供代码......
以下将产生溢出错误:
Dim x as integer
x = len(longstring) 'longstring over 32,768 characters in length
会导致溢出错误。
Dim x as long
x = len(longstring) 'longstring over 32,768 characters in length
工作正常。
Microsoft支持here溢出的另一个示例:
修改强>
更微妙的情况会让你措手不及:
您尝试在计算中使用数字,并且该数字被强制转换为整数,但结果大于整数。
Dim x As Long
x = 2000 * 365 ' Error: Overflow
要解决此问题,请键入数字,如下所示:
Dim x As Long
x = CLng(2000) * 365