Val() y csng() en visual basic

Estoy realizando un programa en VB, pero tengo un problema con estas instrucciones:
1-zxc = Val(frmDatos_1.txtBat(i).Text)
2-zxc = Csng(frmDatos_1.txtBat(i).Text)
Explicación: Cuando introduzco datos manualmente en la caja de texto (por ejemplo 3,5) la 1ª instrucción funciona correctamente, pero si ese dato se introduce al abrir un fichero lee 3 o 35)... La 2ª instrucción al revés, lee bien al abbrir un fichero pero no al introducir datos manualmente...
Tal vez no me haya explicado bien... Mi e-mail es:[email protected]

2 respuestas

Respuesta
1
Para la conversión de números con decimales lo que te recomiendo es que uses siempre la segunda de las funciones que mencionas. El problema cuando vas a leer los datos del fichero es que al parecer vienen con un punto decimal en vez de una coma que es lo que esta esperando la función. Eso puedes resolverlo con una instrucción como esta:
zxc =CSng(Replace (lo_que_leiste_del_fichero,".",","))
con esto sustituyes el punto decimal por una coma. Ojo que esto es muy particular, y necesitas una configuración regional española o equivalente. Lo mejor seria comprobar la configuración regional usando GetLocaleInfo, pero para el caso actual debes resolver con lo que te señalo arriba. De todas maneras si tienes problemas por aquí ando...
Respuesta
1
No se que visual utilizas y eso es importante.. yo tengo y manejo 5.0, envíeme el formulario del problema y veré si entiendo mejor el problema y puedo ayudarte..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas