Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Problema Al Multiplicar 2 Valores

Problema Al Multiplicar 2 Valores
Artículo
Responder citando    Descargar mensaje  
Mensaje Problema Al Multiplicar 2 Valores 
 
Hola chic@s, el titulo lo dice todo no puedo Multiplicar 2 valores os pongo una captura y el codigo haber si me podeis echar una mano, la cuestión es que necesito multiplicar numeros con varios decimales.

Public Sub TxtTxtPrecio_LostFocus()

  ValueSubtotal.Text = (CFloat(TxtUnidades.Text) * CFloat(TxtTxtPrecio.Text))

End

captura



 
desoljor - Ver perfil del usuario Enviar mensaje privado  
desoljor [ Miercoles, 06 Enero 2016, 10:56 ]
 


Problema Al Multiplicar 2 Valores
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: Problema Al Multiplicar 2 Valores 
 
desoljor:

Citar:
ValueSubtotal.Text = (CFloat(TxtUnidades.Text) * CFloat(TxtTxtPrecio.Text))

¿que tipo de control es el ValueSubtotal? ¿un valuebox? ¿o un textbox?

Los tipos de datos no se pueden mezclar, si son numeros no los puedes asignar a un texto.

Existen funciones como Str() o Val(), que hacen la conversión entre numeros a texto y de texto a numeros.

http://cursogambas.blogspot.com.es/...n-tipos-de.html

Saludos



 
jsbsan - Ver perfil del usuario Enviar mensaje privado  
jsbsan [ Miercoles, 06 Enero 2016, 11:34 ]
Responder citando    Descargar mensaje  
Mensaje Re: Problema Al Multiplicar 2 Valores 
 
Creo que lo mas adecuado es usar un ValueBox con el tipo número si sabes que son número.

De todas maneras he probado un ejemplo que sumo dos cajas de texto. El problema que me encuentro es el habitual de la coma al sumar una
caja de texto. Lo que le interesa al convertir a Floats es que haya un punto y no una coma.

Private cajasdetexto As Object[]

Public Sub btnSumar_Click()
  
ComprobarDecimal()
lbResultado.Text = CFloat(txtVal1.Text) + CFloat(txtVal2.Text)

End


Public Sub Form_Open()

  cajasdetexto = [txtVal1, txtVal2]
  
End

Public Sub ComprobarDecimal()
  
  Dim ctexto As Object
  
  For Each ctexto In cajasdetexto
    If ctexto Is TextBox Then
      If InStr(ctexto.Text, ",") Then ctexto.text = Replace(ctexto.text, ",", ".")      
    Endif  
  Next
  
End
 


Supongo que el problema de operaciones matemáticas con caja de textos serán parecidos. ( Los decimales )

Aunque TextBox pueda dar mucho juego, en algunos momentos es mejor usa un ValueBox.
A menos que se quiera un TextBox por muchos motivos.

Julio:

Ya no somos tan jóvenes para estas cosas.  
Ves que el nombre del componente donde va almacenar acaba en .txt. Entonces ya ves que es un TextBox.
Si hubiera sido un ValueBox hubiera sido .value.

Pero es que es muy normal por la mañana. Yo no soy persona hasta que no tomo un café.  

Lo cierto es que tiende a confusión nombrar a la caja de texto...Value...

Saludos



 
última edición por Shell el Miercoles, 06 Enero 2016, 13:27; editado 2 veces 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Miercoles, 06 Enero 2016, 13:23 ]
Responder citando    Descargar mensaje  
Mensaje Problema Al Multiplicar 2 Valores SOLUCIONADO 
 
Gracias a todos la solucion la tenia delante de las narices pero despues de pasarme la noche delante del teclado no conseguia verla era tan sencilla como esto

ValueSubtotal.Text = (TxtUnidades.Value * CFloat(TxtTxtPrecio.Text))



 
desoljor - Ver perfil del usuario Enviar mensaje privado  
desoljor [ Miercoles, 06 Enero 2016, 16:56 ]
Responder citando    Descargar mensaje  
Mensaje Re: Problema Al Multiplicar 2 Valores 
 
Gustaría entender también a nosotros.
Puedes responder a la pregunta de jsbsan ?

¿que tipo de control es el ValueSubtotal?

y tambien que son TxtUnidades y TxtTxtPrecio.



 
última edición por vuott el Jueves, 07 Enero 2016, 00:03; editado 4 veces 
vuott - Ver perfil del usuario Enviar mensaje privado  
vuott [ Miercoles, 06 Enero 2016, 18:33 ]
Responder citando    Descargar mensaje  
Mensaje Re: Problema Al Multiplicar 2 Valores 
 
La verdad es que es raro que no se muestren decimales en ValueSubtotal.Text



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Miercoles, 06 Enero 2016, 19:25 ]
Responder citando    Descargar mensaje  
Mensaje Re: Problema Al Multiplicar 2 Valores 
 
desoljor

Citar:
la solucion la tenia delante


ValueSubtotal.Text = (TxtUnidades.Value * CFloat(TxtTxtPrecio.Text))


La solución que expones no vale en todos los casos, mete valores decimales en los dos sitios, y dará problemas...



 
jsbsan - Ver perfil del usuario Enviar mensaje privado  
jsbsan [ Miercoles, 06 Enero 2016, 21:52 ]
Responder citando    Descargar mensaje  
Mensaje Re: Problema Al Multiplicar 2 Valores 
 
Pues a mi no me da problemas con el código que os he mostrado. Solo he tenido que cambiar
el tipo de operación por multiplicar y para que el resultado se mostrase en una caja de texto ,
quite la etiqueta y puse una caja de texto.  

 productoentextboxes

Prácticamente sustituye la coma por el punto antes de realizar la operación, solo eso.

Saludos



 
última edición por Shell el Jueves, 07 Enero 2016, 09:50; editado 1 vez 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Jueves, 07 Enero 2016, 09:50 ]
Responder citando    Descargar mensaje  
Mensaje Re: Problema Al Multiplicar 2 Valores 
 
Shell:

Citar:
Prácticamente sustituye la coma por el punto antes de realizar la operación, solo eso.

¿te parece poco?
 Internamente para manejar un número decimal, se va usar la "," y no el punto. Cuando intente añadir o emplearlo en otra cosa, se formará un follón y no sabrá que esta fallando....

Lo mejor es hacerlo bien: usando funciones de conversión de tipos de datos, asi nunca tendrá problemas.

Saludos



 
jsbsan - Ver perfil del usuario Enviar mensaje privado  
jsbsan [ Jueves, 07 Enero 2016, 12:04 ]
Responder citando    Descargar mensaje  
Mensaje Re: Problema Al Multiplicar 2 Valores 
 
Shell, tu programa fallará si se ejecuta en un sistema en otro idioma, porque la representación del punto decimal puede ser diferente según el idioma. Casualmente en nuestro sistema es el punto, pero los ingleses o americanos por ejemplo, lo representan con la coma (si mal no recuerdo).

Hay que usar funciones de conversión que tengan en cuenta la localización del sistema (entendiendo por localización la representación de los números, monedas, etc según el idioma).

Saludos



 
jguardon - Ver perfil del usuario Enviar mensaje privado  
jguardon [ Jueves, 07 Enero 2016, 13:12 ]
Mostrar mensajes anteriores:    
 
Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 



 

cron