none
Operaciones matematicas con varios textbos. RRS feed

  • Pregunta

  • Buenas tardes a todos, tengo un form con varios textbox y un datagridview que muestra informacion almacenada en mi base de datos Sql server. Lo que estoy intentando, es que cuando presione el Btn4 dentro de este formulario haga las operaciones indicadas.

    Actualmente lo estoy intentando asi pero no me funciona, no regresa lo que segun yo estoy declarando en el boton. El tercer operador corresponde al texboxt4 que tiene asginada la cantidad de 1000, el cuarto operador corresponde al textbox5 que tiene asignado el valor .35, el quinto operador LE VUELVO A ASIGNAR EL TEXTBOX5.Cuando presiono el boton no me regresa en el mensaje la cantidad de 1350, me devuelve en el mensaje la cantidad de 300.35.

    Alguien que me pueda asesorar? Desde ya mil gracias.

    Mi codigo actual:

     decimal terceroperador, cuartooperador,quintooperador, Resultado1, Resultado2,Resultado3;
            private void RecuperarDatos1()
            {
                terceroperador = decimal.Parse(Txtbox4.Text);
                cuartooperador = decimal.Parse(Txtbox5.Text);
                quintooperador = decimal.Parse(Txtbox5.Text);
            }
            private void Btn4_Click(object sender, EventArgs e)
            {
                if (string.IsNullOrEmpty(Txtbox3.Text) || string.IsNullOrEmpty(Txtbox4.Text) ||
                  string.IsNullOrEmpty(Txtbox5.Text) || string.IsNullOrEmpty(Txtbox7.Text))
                {
                    MessageBox.Show("No es posible calcular  sin un registro valido.");
                    return;
                }
                RecuperarDatos1();
                Resultado1 = terceroperador * cuartooperador;
                Resultado2 = Resultado1 + quintooperador;
                Resultado3 = Resultado2;
                MessageBox.Show("Al dia de hoy es de $ " + Convert.ToString(Resultado3));

    viernes, 5 de abril de 2019 20:41

Respuestas

  • hola

    >>el cuarto operador corresponde al textbox5 que tiene asignado el valor .35

    si pones un breakpoint en el codigo podrias pasar el mouse por sobre las variables y ver que valores toman los calculos

    puede que no este tomando el decimal de forma correcta y los 0.35 lo entienda como 35

    cuartooperador = decimal.Parse(Txtbox5.Text, CultureInfo.GetCultureInfo ("en-US"));

    Para que realizas esta ultima linea

    Resultado3 = Resultado2;

    no esta de mas ?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 5 de abril de 2019 21:04
  • Creo que ya encontre el detalle :v

    Quite la ultima linea como me comentabas Leandro, y tambien el quintooperador estaba de mas.  El textbox5 tiene el valor .35,  el textbox4 tiene el valor 1000, entonces la primera multiplicacion la daba sin problema y de forma correcta terceroperador*cuartooperador = 350. Yo me estaba confundiendo, estaba haciendo la operacion que se muestra abajo.

    El codigo en esta parte lo tenia asi:

    RecuperarDatos1();
                Resultado1 = terceroperador * cuartooperador;
                Resultado2 = Resultado1 + quintooperador;//quintoperador se lo volvi a asignar al txtbox5 que tiene el .35, entonces por eso sumaba 300.35.

    Lo modifique asi:

     RecuperarDatos1();
                Resultado1 = terceroperador * cuartooperador;
                Resultado2 = Resultado1 + terceroperador;// terceroperador es donde esta asignada la cantidad 1000 y en cuartooperador los .35.

    Gracias por tomarse el tiempo de responder Leandro, soy nuevo en esto y me gusta, me relaja ver lineas de codigo, pero creo que a veces es bueno pararse unos 5 minutos despues de 8 horas frente a mi lap :v creo que no veia lo obvio.

    De nuevo mil gracias.

    viernes, 5 de abril de 2019 21:35

Todas las respuestas

  • hola

    >>el cuarto operador corresponde al textbox5 que tiene asignado el valor .35

    si pones un breakpoint en el codigo podrias pasar el mouse por sobre las variables y ver que valores toman los calculos

    puede que no este tomando el decimal de forma correcta y los 0.35 lo entienda como 35

    cuartooperador = decimal.Parse(Txtbox5.Text, CultureInfo.GetCultureInfo ("en-US"));

    Para que realizas esta ultima linea

    Resultado3 = Resultado2;

    no esta de mas ?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 5 de abril de 2019 21:04
  • hola

    >>el cuarto operador corresponde al textbox5 que tiene asignado el valor .35

    si pones un breakpoint en el codigo podrias pasar el mouse por sobre las variables y ver que valores toman los calculos

    puede que no este tomando el decimal de forma correcta y los 0.35 lo entienda como 35

    cuartooperador = decimal.Parse(Txtbox5.Text, CultureInfo.GetCultureInfo ("en-US"));

    Para que realizas esta ultima linea

    Resultado3 = Resultado2;

    no esta de mas ?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    Lo tenia sin esa ultima linea y me mostraba el mismo resultado. Pense que quizas se debia a que el quintooperador no lo relacionaba a nada, asi que pues intente de ese modo una vez realizadas las operaciones me trajera el resultado, pero no funciono. Intente asi; terceroperador*cuartooperador+quintooperador...y sigue igual. Pero cuando solo intento hacer la operacion del terceroperador y del cuartooperador, si me da la cantidad correcta en el mensaje que en este caso equivale a 350.

    cuartooperador = decimal.Parse(Txtbox5.Text, CultureInfo.GetCultureInfo ("en-US"));//Lo intente y nada.


    viernes, 5 de abril de 2019 21:17
  • Creo que ya encontre el detalle :v

    Quite la ultima linea como me comentabas Leandro, y tambien el quintooperador estaba de mas.  El textbox5 tiene el valor .35,  el textbox4 tiene el valor 1000, entonces la primera multiplicacion la daba sin problema y de forma correcta terceroperador*cuartooperador = 350. Yo me estaba confundiendo, estaba haciendo la operacion que se muestra abajo.

    El codigo en esta parte lo tenia asi:

    RecuperarDatos1();
                Resultado1 = terceroperador * cuartooperador;
                Resultado2 = Resultado1 + quintooperador;//quintoperador se lo volvi a asignar al txtbox5 que tiene el .35, entonces por eso sumaba 300.35.

    Lo modifique asi:

     RecuperarDatos1();
                Resultado1 = terceroperador * cuartooperador;
                Resultado2 = Resultado1 + terceroperador;// terceroperador es donde esta asignada la cantidad 1000 y en cuartooperador los .35.

    Gracias por tomarse el tiempo de responder Leandro, soy nuevo en esto y me gusta, me relaja ver lineas de codigo, pero creo que a veces es bueno pararse unos 5 minutos despues de 8 horas frente a mi lap :v creo que no veia lo obvio.

    De nuevo mil gracias.

    viernes, 5 de abril de 2019 21:35