none
Como puedo calcular un porcentaje

    Pregunta

  •  Private Sub Calcular()
    
    
            Dim PORCENTAJE As Double = 0
    
            Dim val1 As Double = 0
            Double.TryParse(txtmontoUni.Text, val1)
    
            Dim val2 As Integer = 0
            Int32.TryParse(Ncantidad.Value, val2)
    
            Dim val3 As Double = 0
            Double.TryParse(txtdesc.Text, val3)
    
    
            If CheckDes.Checked = False Then
    
                If RBsoles.Checked = True Then
    
                    TxtMonto.Text = Format(Convert.ToDouble(val1 * val2) - val3, "00.00")
                Else
    
                    PORCENTAJE = (TxtMonto.Text * val3) / 100
    
                    TxtMonto.Text = Format(Convert.ToDouble(val1 * val2) - PORCENTAJE, "00.00")
    
                End If
    
            Else
    
                txtdesc.Text = ""
                TxtMonto.Text = Format(Convert.ToDouble(val1 * val2) + val3, "00.00")
    
            End If
    
    
    
    
    
        End Sub


    Hola mi nombre es samuel

    viernes, 17 de marzo de 2017 21:14

Respuestas

  • El error que estás viendo se produce porque el txtMonto está vacío (no se ha tecleado nada en él). Al intentar multiplicarlo por val3, lo que hace VB es intentar convertir el texto introducido en un número para luego poderlo multiplicar. Pero, claro, ese texto (vacío) no se puede convertir en número, y por eso da un error.

    Convendría validar que el textbox no esté vacío (usando un IF), y no intentar hacer con él ningún cálculo mientras el usuario no introduzca un valor para calcular.

    viernes, 17 de marzo de 2017 22:27

Todas las respuestas

  • El error que estás viendo se produce porque el txtMonto está vacío (no se ha tecleado nada en él). Al intentar multiplicarlo por val3, lo que hace VB es intentar convertir el texto introducido en un número para luego poderlo multiplicar. Pero, claro, ese texto (vacío) no se puede convertir en número, y por eso da un error.

    Convendría validar que el textbox no esté vacío (usando un IF), y no intentar hacer con él ningún cálculo mientras el usuario no introduzca un valor para calcular.

    viernes, 17 de marzo de 2017 22:27
  • Gracias por responder pero como podriahacer que al iniciar no salga ningún error 

    Hola mi nombre es samuel

    viernes, 17 de marzo de 2017 22:41
  • Gracias amigo me diste una gran idea 

     If txtmontoUni.TextLength > 0 Then


    Hola mi nombre es samuel

    viernes, 17 de marzo de 2017 22:49