VB6:使用字符串时,溢出错误的可能原因是什么?

VB6:使用字符串时,溢出错误的可能原因是什么?,vb6,string,overflow,Vb6,String,Overflow,在VB6中,溢出错误的可能原因是什么?当它发生时,我正在使用字符串 是RAM还是硬盘空间?或者它是VB6内部的东西?我想在这里暗中试探一下,正如Hogan所说,一些代码会有所帮助。通常,当VB6处理数学公式中的整数或long时,字符串会发生溢出错误,并且结果太大,无法容纳整数或long 根据公式的性质,您可以通过在末尾添加“.0”来强制系统将数字用作浮点来避免问题。否则,请使用各种Cxxx函数将数字显式转换为范围更大的类型 你考虑的一点是浮点比整数整数精度要低,所以确保在转换时不要丢失所需的精度

在VB6中,溢出错误的可能原因是什么?当它发生时,我正在使用字符串


是RAM还是硬盘空间?或者它是VB6内部的东西?

我想在这里暗中试探一下,正如Hogan所说,一些代码会有所帮助。通常,当VB6处理数学公式中的整数或long时,字符串会发生溢出错误,并且结果太大,无法容纳整数或long

根据公式的性质,您可以通过在末尾添加“.0”来强制系统将数字用作浮点来避免问题。否则,请使用各种Cxxx函数将数字显式转换为范围更大的类型


你考虑的一点是浮点比整数整数精度要低,所以确保在转换时不要丢失所需的精度。

< P>我会在黑暗中刺伤,一些代码会像Hogan所说的那样帮助。通常,当VB6处理整数或长的事情时,字符串会出现溢出错误。数学公式中的s,并且结果太大,无法容纳整数或long

根据公式的性质,您可以通过在末尾添加“.0”来强制系统将数字用作浮点,从而避免问题。否则,使用各种Cxxx函数将数字显式转换为范围更大的类型


你考虑的一点是浮点比整数整数精度要低,所以确保在转换时不要丢失需要的精度。

另一个“STAB”,因为没有提供代码……/P> 以下操作将产生溢出错误:

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支持溢出的另一个示例:

编辑

更微妙的情况会让你措手不及:

您试图在计算中使用一个数字,该数字被强制为整数,但结果大于整数

Dim x As Long
x = 2000 * 365 ' Error: Overflow
要解决此问题,请键入数字,如下所示:

Dim x As Long
x = CLng(2000) * 365

另一个“刺”,因为没有提供代码

以下操作将产生溢出错误:

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支持溢出的另一个示例:

编辑

更微妙的情况会让你措手不及:

您试图在计算中使用一个数字,该数字被强制为整数,但结果大于整数

Dim x As Long
x = 2000 * 365 ' Error: Overflow
要解决此问题,请键入数字,如下所示:

Dim x As Long
x = CLng(2000) * 365

是的,可以是任何内容,例如当分配给错误的变量时,字符串中的数字被隐式转换为整数。或者当使用“+”进行串联时。是的,可以是任何字符串,例如当分配给错误的变量时,其中的数字被隐式转换为整数的字符串。或使用“+”进行连接时。