Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Problema al guardar el resultado de una operacion. Error 6 en tiempo de ejecucion.

Estas en el tema de Problema al guardar el resultado de una operacion. Error 6 en tiempo de ejecucion. en el foro de Visual Basic clásico en Foros del Web. Hola, estoy realizando una simple operacion matematica, por ejemplo: 999*99=98901 Que en teoria cabe en un simple long. Pues me da el Error 6 en ...
  #1 (permalink)  
Antiguo 17/05/2006, 04:20
 
Fecha de Ingreso: marzo-2006
Mensajes: 29
Antigüedad: 18 años, 1 mes
Puntos: 0
Problema al guardar el resultado de una operacion. Error 6 en tiempo de ejecucion.

Hola, estoy realizando una simple operacion matematica, por ejemplo:

999*99=98901

Que en teoria cabe en un simple long.

Pues me da el Error 6 en tiempo de ejecucion. Desbordamiento.

Cuando si asigno directamente 98901 a mi variable me permite perfectamente.

Gracias.
  #2 (permalink)  
Antiguo 17/05/2006, 15:55
Avatar de [EX3]  
Fecha de Ingreso: marzo-2006
Ubicación: Fuenlabrada, Madrid
Mensajes: 203
Antigüedad: 18 años, 1 mes
Puntos: 1
El desbordamiento se produce por la operacion en si, que los calculos con esos valores quizas produzcan valores demasiado grandes para almacenar en un Long, y no por el resultado que devuelve la operacion. Fijate que separando uno de los valores en una variable a parte y usandola en la misma operacion funciona sin problemas:
Código:
Option Explicit

Private Sub Form_Load()
Dim a As Long, b As Long

b = 999
a = b * 99

End Sub
Aun asi es un error muy curioso en el muchas veces ni nos damos cuenta por no ser logico a vista de codigo

Salu2...
__________________
Proyecto dx_lib32 (http://dxlib32.se32.com) Libreria DLL ActiveX para el desarollo de juegos y programas multimedia en Visual Basic 6.0 con la potencia de DirectX

Dice un dicho que "el que calla otorga". En internet tenemos otro que dice "nunca alimentes a un troll" que viene a decir "dejale hablar solo que se ya se cansara de incordiar". Solo los necios creen tener la razon con la ultima palabra.

  #3 (permalink)  
Antiguo 18/05/2006, 00:03
 
Fecha de Ingreso: marzo-2006
Mensajes: 29
Antigüedad: 18 años, 1 mes
Puntos: 0
Tienes razon, he probado lo de las variables y funciona sin problemas. Curioso.

Muchas gracias.
  #4 (permalink)  
Antiguo 18/05/2006, 19:51
Avatar de Jad-Neo  
Fecha de Ingreso: octubre-2004
Mensajes: 344
Antigüedad: 19 años, 6 meses
Puntos: 0
El porque...

Oigan!!!!,yo lo hago de forma diferente

Código:
Dim i As Long
i = 999 * CLng(99)
Esto siempre me ha pasado a mi tmabièn cuando quiero hacer operaciones con números muy grandes. Veran, lo que pasa es que VB6 no permite hacer operaciones de forma directa que den como resultado un tipo Long (32 bits), por lo que he comprobado sólo soporta operaciones directas hasta con numero de 16 bits (Integers).

Si pasa lo del caso anterior sólo es cosa de usar las funciones de conversión. Espero haya podido ayudar en el porque.
__________________
Nunca seas sabio en tu propia opinión.
  #5 (permalink)  
Antiguo 21/04/2008, 14:37
 
Fecha de Ingreso: abril-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Exclamación Re: Problema al guardar el resultado de una operacion. Error 6 en tiempo de ejecucion

Hola todos, Tengo un problema parecido pero distinto...
cuando compilo la aplicacion en ".exe"
y al incluir datos la mayoria char... dice "error '6' en tiempo de ejecucion" etc
pero cuando hago los mismos ejemplos, compilando la aplicacion en el mismo VB si ejecuta el programa sin problemas...
debido a esto no encuentro cual sea el posible error....
les agradezco su pronta ayuda
Gracias
  #6 (permalink)  
Antiguo 08/05/2008, 22:23
 
Fecha de Ingreso: mayo-2008
Mensajes: 10
Antigüedad: 16 años
Puntos: 0
Re: Problema al guardar el resultado de una operacion. Error 6 en tiempo de ejecucion

jola yo tambien tengo ese problema me dice lo mismo yo estoy haciendo un programa de conversion de sistemas numericos y no se por que tengo vector bueno mejor les doy el codigo que he hecho este es de binario a binario jeje estupido no pero la gente puede probara hacer eso y tengo que tener todo listo



Private Sub Aceptar_Click()
If Option1 And Option5 Then
Dim bin As Integer
Dim residuo As Integer
Dim cosciente As Integer
Dim v()
Dim J As Integer
J = 0
Dim i As Integer
i = 0
bin = Val(Text1.Text)
While J = 15
ReDim Preserve v(J + 1)
cosciente = bin / 1E+29
residuo = bin Mod 1E+29
v(J) = cosciente
bin = residuo
J = J + 1
Wend
End If
For i = 0 To v(J) Step 1
If v(J) > 1 Then
Label13 = Text1
Else
Form3.Show
End If
Next i
End Sub


el error me lo tira en bin= val (text1.text)
por favor necesito ayuda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 13:01.