• Miércoles 8 de Mayo de 2024, 02:53

Autor Tema:  conservar el valor decimal  (Leído 2046 veces)

kelmax

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
conservar el valor decimal
« en: Viernes 12 de Febrero de 2010, 16:11 »
0
Tengo que hacer unos calculos con decimales pero al pasar el valor del txtbox a una variable lo redondea y me descuadra el resultado final.

el valor del text1  789.56  (ingresado por usuario)
y la variable queda   var1= 789
   
  var1=val(text1.text)

necesito que conserve el valor original (en este caso 789.56),  var1 esta declarada como double.

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: conservar el valor decimal
« Respuesta #1 en: Viernes 12 de Febrero de 2010, 21:17 »
0
El contenido de un textbox es una cadena de texto. Cuando haces un 'val' interpreta la cadena como un valor numérico hasta donde pueda hacerlo.
En este punto vb interpreta un punto dentro de una cadena de texto como no numérico, por eso te toma sólo la parte entera.

Hay 2 opciones:
A ) Remplazar la coma  por un punto
Código: Visual Basic
  1.  
  2. dim var1 as double
  3. Text1.text= "789,56"
  4. text1.text= replace$(text1.text,",",".",1,1)  ' sólo cambiamos la primera coma encontrado
  5. var1=val(text1.text)
  6. msgbox var1
  7.  
  8.  
en este caso habiendo una coma en el texto si no se remplaza haría esto:
text1.text="789,56"
...
msgbox var1  resultado= 789

B ) Eliminar la función  val, forzando a que se realice una conversión implícita .
Código: Visual Basic
  1.  
  2. dim var1 as double
  3. Text1.text= "789,56"
  4. var1= text1.text
  5. msgbox var1
  6.  
  7.  
En este caso si hubiera 1 punto en vez de una coma haría esto:
text1.text="789.56"
...
msgbox var1  resultado= 78956
«Ma non troppo»
----> ModoVacaciones = False<----