Autor |
Mensaje |
desoljor
Aprendiz
Registrado: Junio 2010
Mensajes: 87
Edad: 57 Ubicación:
|
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
|
#1 Miercoles, 06 Enero 2016, 10:56 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
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
|
#2 Miercoles, 06 Enero 2016, 11:34 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
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.
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
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Miercoles, 06 Enero 2016, 13:27; editado 2 veces
|
#3 Miercoles, 06 Enero 2016, 13:23 |
|
|
desoljor
Aprendiz
Registrado: Junio 2010
Mensajes: 87
Edad: 57 Ubicación:
|
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))
|
#4 Miercoles, 06 Enero 2016, 16:56 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
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
|
#5 Miercoles, 06 Enero 2016, 18:33 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Problema Al Multiplicar 2 Valores
La verdad es que es raro que no se muestren decimales en ValueSubtotal.Text
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#6 Miercoles, 06 Enero 2016, 19:25 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
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...
|
#7 Miercoles, 06 Enero 2016, 21:52 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
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.
Prácticamente sustituye la coma por el punto antes de realizar la operación, solo eso.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Jueves, 07 Enero 2016, 09:50; editado 1 vez
|
#8 Jueves, 07 Enero 2016, 09:50 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
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
|
#9 Jueves, 07 Enero 2016, 12:04 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
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
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#10 Jueves, 07 Enero 2016, 13:12 |
|
|
|