vb6 - solucion - espacio de pila insuficiente excel
Error de desbordamiento de VB6 con enteros grandes (3)
en VB6, el tipo entero es un número entero que varía de -32768 a 32767.
Sería mejor usar el tipo Long
aquí.
Estoy tratando de establecer un valor entero como tal:
Dim intID as integer
intID = x * 10000
Esto funciona bien cuando x
es 3 o menos. Pero cuando x
es 4, esto me da el error:
tiempo de ejecución error 6 desbordamiento
No entiendo por qué es esto. Puedo configurar intID
a 40000 directamente sin ningún problema, por lo que obviamente es capaz de almacenar números grandes.
Usted * no puede establecer un número entero vb6 en 40000 ya que están firmados con números de 16 bits, por lo que +32767 es el máximo.
Long
es el tipo de 32 bits.
Sin embargo, como advertencia, si tuviera que:
Dim lngID As Long
lngID = 4 * 10000
Todavía obtendrías un desbordamiento ya que los números literales son por defecto de Entero, para corregir eso simplemente escribe uno tan largo con &
o envía uno igual de largo usando CLng()
:
Dim lngID As Long
lngID = 4 * 10000&
lngID = 4 * CLng(10000)
Actualización :
En VB, el rango de variables enteras es de -32,768 a 32,767. Si cualquier valor de variable es mayor que este rango en su programa, debe declarar el tipo de datos Long en lugar de Integer.
Dim intID as integer
intID = x * 10000
Dim lngID AS Long
lngID = x * CLng(10000)
'' if 10000
'' whatever you want to be