none
Error simple al sumar RRS feed

  • Pregunta

  • Hola mi error es que cuando agrego un nuevo producto me acumula el resultado por ejemplo:

    Producto 1 valor 7

    Producto 2 valor 2

    Resultado 72

    Lo que quiero que haga es que lo sume. Resultado 9.

    La parte de código que hice es esta.

    Al TotalEventual me lo trae bien.

     Dim TotalEventual As String
    
            FrmVentas.DataGridView2.Rows.Add(txtnombre.Text, txtpunitario.Text, txtcantst.Text)
            TotalEventual = Val(txtpunitario.Text) * Val(txtcantst.Text)
            FrmVentas.txttotal.Text = FrmVentas.txttotal.Text + TotalEventual
    Saludos


    lunes, 14 de noviembre de 2016 17:37

Respuestas

  • Site fijas en el sitio donde estás haciendo la suma, verás que el dato que sumas no es un número sino un String (FrmVentas.txttotal.Text), y TotalEventual también es un string. Cuando usas el operador suma con Strings, lo interpreta como "concatenar" en lugar de "sumar".

    La solución obvia es ponerle unos "Val":

    FrmVentas.txttotal.Text = Val(FrmVentas.txttotal.Text) + Val(TotalEventual)

    Sin embargo, aunque eso funcionará, no te aconsejo que te acostumbres a trabajar así, porque a la larga te dará muchos problemas y te ocasionará muchos errores. La recomendación es que no utilices las conversiones de tipo automáticas de Visual Basic. Las puedes deshabilitar poniendo al principio de tu código fuente "Option Strict On". Esto hace que las conversiones de datos siempre las tengas que escribir expresamente; no podrás meter un número en un string o un string en un número sin hacer aposta la conversión. Aunque parezca que esto lleva más trabajo porque hay que escribir las conversiones, a la larga acabarás ahorrando horas de programación gracias a que evitarás muchos errores debidos precisamente a esas conversiones implícitas, ya que usarás el tipo correcto de dato en cuanto te des cuenta de que estás metiendo una conversión de más.

     
    lunes, 14 de noviembre de 2016 19:37