none
Sumar decimales. RRS feed

  • Pregunta

  • Hola, mi duda es como puedo hacer para sumar valores decimales, ya al sumar me suma el valor entero y no los decimales.

    Este es el código y el valor que trae para sumar al textbox.

         Dim punitarioredo = CDec(txtpunitario.Text).ToString("N2")
                  Dim TotalEventual = punitarioredo * Val(txtcantst.Text)
            Dim TotalEventualredo = CDec(TotalEventual).ToString("N2")       
            txtsubtotal.Text = TotalEventualredo       
            FrmVentas.DataGridView2.Rows.Add(txtnombre.Text, punitarioredo, txtcantst.Text, txtsubtotal.Text)
    
            FrmVentas.txttotal.Text = FrmVentas.txttotal.Text + Val(TotalEventualredo)

    Saludos.

    martes, 3 de enero de 2017 18:31

Respuestas

  • Federico3213,

    Veo que no dejas la mala practica de convertir un número a una representación de número con formato. Cuando aplicas un formato el valor deja de ser numérico y pasa a convertirse en una cadena, ¿intentas realizar operaciones aritméticas entre cadenas?, sólo obtendrás concatenación. Te recomiendo que dejes el formato sólo cuando quieras presentar un valor.

    Dim punitarioredo As Decimal = CDec(txtpunitario.Text)
    Dim TotalEventual As Decimal = punitarioredo * CInt(txtcantst.Text)
    txtsubtotal.Text = TotalEventual.ToString("N2")
    FrmVentas.DataGridView2.Rows.Add(txtNombre.Text, punitarioredo.ToString("N2"),
    						 txtcantst.Text, txtsubtotal.Text)
    
    FrmVentas.txttotal.Text = (CDec(FrmVentas.txttotal.Text) + TotalEventual).ToString("N2")


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Federico32113 martes, 3 de enero de 2017 19:15
    martes, 3 de enero de 2017 18:49

Todas las respuestas

  • Hola, 

    Debes convertir ambos valores a decimales y luego sumarlos

    Saludos.,
    Cristian Cárdenas


    martes, 3 de enero de 2017 18:42
  • Federico3213,

    Veo que no dejas la mala practica de convertir un número a una representación de número con formato. Cuando aplicas un formato el valor deja de ser numérico y pasa a convertirse en una cadena, ¿intentas realizar operaciones aritméticas entre cadenas?, sólo obtendrás concatenación. Te recomiendo que dejes el formato sólo cuando quieras presentar un valor.

    Dim punitarioredo As Decimal = CDec(txtpunitario.Text)
    Dim TotalEventual As Decimal = punitarioredo * CInt(txtcantst.Text)
    txtsubtotal.Text = TotalEventual.ToString("N2")
    FrmVentas.DataGridView2.Rows.Add(txtNombre.Text, punitarioredo.ToString("N2"),
    						 txtcantst.Text, txtsubtotal.Text)
    
    FrmVentas.txttotal.Text = (CDec(FrmVentas.txttotal.Text) + TotalEventual).ToString("N2")


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Federico32113 martes, 3 de enero de 2017 19:15
    martes, 3 de enero de 2017 18:49