none
ayudenme me salee error en la conversion de double :s en estas lineas txt_consumo.Text = txt_actual.Text - txt_anterior.Text txt_subtotal.Text = txt_consumo.Text * lbl_valorkb.Text RRS feed

  • Pregunta

  •  Private Sub t1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles t1.KeyPress, txt_actual.KeyPress
            If e.KeyChar = ChrW(Keys.Return) Then
                SendKeys.Send("{tab}")
            ElseIf Char.IsLetter(e.KeyChar) Then
                e.Handled = True
            ElseIf Char.IsSymbol(e.KeyChar) Then
                e.Handled = True
            End If
        End Sub
        Private Sub c1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles c1.SelectedIndexChanged
            If (c1.SelectedIndex = 0) Then
                lbl_valorkb.Text = ("EL VK ES 4")
            ElseIf (c1.SelectedIndex = 1) Then
                lbl_valorkb.Text = ("EL VK ES 3")
            ElseIf (c1.SelectedIndex = 2) Then
                lbl_valorkb.Text = ("EL VK ES 2")
            ElseIf (c1.SelectedIndex = 3) Then
                lbl_valorkb.Text = ("EL VK ES 1")
            End If
        End Sub
        Private Sub anterior_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txt_anterior.KeyPress
             If e.KeyChar = Convert.ToChar(Keys.Return) Then
                SendKeys.Send("{tab}")
               If txt_anterior.Text & txt_actual.Text = "" Then
                    MsgBox("ERROR!, FALTAN NUMEROS", MsgBoxStyle.Critical, "ERROR!")
                End If
                If txt_anterior.Text > txt_actual.Text Then
                    MsgBox("ERROR!, NO PUEDE SER MAYOR", MsgBoxStyle.Critical, "ERROR!")
                End If
                
                If t1.Text = "" Then
                    MsgBox("Error, falta edad", MsgBoxStyle.Critical, "Error")
                ElseIf t1.Text >= 65 Then
                    txt_descuento.Text = txt_subtotal.Text * 0.5
                Else
                    txt_descuento.Text = txt_subtotal.Text
                End If
                txt_neto.Text = txt_subtotal.Text - txt_descuento.Text
            End If
            txt_consumo.Text = txt_actual.Text - txt_anterior.Text
            txt_subtotal.Text = txt_consumo.Text * lbl_valorkb.Text
    jueves, 11 de julio de 2013 1:27

Respuestas

  • Hola prueba con este codigo:

    dim consumo, actual, anterior, subtotal, valor as double
    
    consumo= val(txt_consumo.text)
    actual= val(txt_actual.text)
    anterior= val(txt_anterior.text)
    subtotal= val(txt_subtotal.text)
    valor= val(lbl_valor.text)
    
    consumo= actual - anterior
    
    subtotal= consumo * valor

    Bueno a mi me funciona muy bien... quizás alguien mas te de una mejor respuesta...

    saludos...

    jueves, 11 de julio de 2013 2:20
  • No hagas operaciones aritmeticas con tipos de datos string, aunque VB te lo permita no lo hagas.

    Convierte todos tus datos al tipo correcto, algo asi

    txt_consumo.Text = Convert.ToString( Convert.ToDouble(txt_actual.Text) - Convert.ToDouble(txt_anterior.Text) )
    

    Pon en practica en todo tu codigo así tendras una aplicación más confiable.

    jueves, 11 de julio de 2013 2:23


  • txt_consumo.Text = Val(txt_actual.Text) - Val(txt_anterior.Text)
    txt_subtotal.Text = Val(txt_consumo.Text) * Val(lbl_valorkb.Text)




    Bismarck Gael

    jueves, 11 de julio de 2013 2:26
  • hola

    cuando no se sabe si lo ingresado en un control puede ser una fecha valida o no se suele utilizar

    Dim val1 As Double = 0
    Double.TryParse(txt_subtotal.Text, val1)
    
    Dim val2 As Double = 0
    Double.TryParse(txt_descuento.Text, val2)
    
    txt_neto.Text =  val1 - val2


    de esta forma si algun valor no es correcto usara el valor por defecto pero no fallara

    tambien se podria usar

    Dim val1 As Double = 0
    
    If Not Double.TryParse(txt_subtotal.Text, val1) Then
    
       MesasageBox.Show("el subtotal no es un valor numerico valido")
       Return
    
    End If

    aqui estarias validando si es que pudo castear al tipo de dato

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 11 de julio de 2013 2:29

Todas las respuestas

  • en que linea exactamente te manda el error?


    Saludos desde Monterrey, Nuevo León, México!!!

    jueves, 11 de julio de 2013 1:30
  • Hola prueba con este codigo:

    dim consumo, actual, anterior, subtotal, valor as double
    
    consumo= val(txt_consumo.text)
    actual= val(txt_actual.text)
    anterior= val(txt_anterior.text)
    subtotal= val(txt_subtotal.text)
    valor= val(lbl_valor.text)
    
    consumo= actual - anterior
    
    subtotal= consumo * valor

    Bueno a mi me funciona muy bien... quizás alguien mas te de una mejor respuesta...

    saludos...

    jueves, 11 de julio de 2013 2:20
  • No hagas operaciones aritmeticas con tipos de datos string, aunque VB te lo permita no lo hagas.

    Convierte todos tus datos al tipo correcto, algo asi

    txt_consumo.Text = Convert.ToString( Convert.ToDouble(txt_actual.Text) - Convert.ToDouble(txt_anterior.Text) )
    

    Pon en practica en todo tu codigo así tendras una aplicación más confiable.

    jueves, 11 de julio de 2013 2:23


  • txt_consumo.Text = Val(txt_actual.Text) - Val(txt_anterior.Text)
    txt_subtotal.Text = Val(txt_consumo.Text) * Val(lbl_valorkb.Text)




    Bismarck Gael

    jueves, 11 de julio de 2013 2:26
  • hola

    cuando no se sabe si lo ingresado en un control puede ser una fecha valida o no se suele utilizar

    Dim val1 As Double = 0
    Double.TryParse(txt_subtotal.Text, val1)
    
    Dim val2 As Double = 0
    Double.TryParse(txt_descuento.Text, val2)
    
    txt_neto.Text =  val1 - val2


    de esta forma si algun valor no es correcto usara el valor por defecto pero no fallara

    tambien se podria usar

    Dim val1 As Double = 0
    
    If Not Double.TryParse(txt_subtotal.Text, val1) Then
    
       MesasageBox.Show("el subtotal no es un valor numerico valido")
       Return
    
    End If

    aqui estarias validando si es que pudo castear al tipo de dato

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 11 de julio de 2013 2:29