none
A conversão da cadeia de caracteres '' no tipo 'Double' não é válida. RRS feed

  • Pergunta

  • Sempre que vou testar um programa aparece a seguinte mensagem: 

    An unhandled exception of type 'System.InvalidCastException' occurred in Microsoft.VisualBasic.dll

    Additional information: A conversão da cadeia de caracteres '' no tipo 'Double' não é válida.

    oq eu faço?

    quarta-feira, 20 de maio de 2015 14:50

Todas as Respostas

  • E qual o teste que esta fazendo, posta o código

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quarta-feira, 20 de maio de 2015 16:36
  • Estou fazendo um trabalho da escola e ainda não entendo muito

    é isso q vc ta pedindo?

    Dim F, C As Double

            F = Txtf.Text
            C = (5 / 9) * (F - 32)
            C = Txtc.Text

            If C < 20 Then
                Txtclas.Text = "Dia frio"
            ElseIf 20 <= C And C <= 23 Then
                Txtclas.Text = "Dia agradável"
            ElseIf C > 23 Then
                Txtclas.Text = "Dia quente"
            End If

    quarta-feira, 20 de maio de 2015 16:46
  • Você terá que converter os TextBox e os valores inteiros que informa em sua comparação para Double antes de atribuir a variavel.

    F = Convert.ToDouble(Txtf.Text)
            C =Convert.ToDouble( (5 / 9) * (F - 32))
            C = Convert.ToDouble(Txtc.Text)
    
            If C < Convert.ToDouble(20) Then
                Txtclas.Text = "Dia frio"
            ElseIf Convert.ToDouble(20) <= C And C <= Convert.ToDouble(23) Then
                Txtclas.Text = "Dia agradável"
            ElseIf C > Convert.ToDouble(23) Then
                Txtclas.Text = "Dia quente"
            End If



    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quarta-feira, 20 de maio de 2015 16:54
  • Agr apareceu essa mensagem:

    Additional information: A cadeia de caracteres de entrada não estava em um formato incorreto.

    Tenho q fazer esse Conver.ToDouble no Dim F, C As Double tbm?

    quarta-feira, 20 de maio de 2015 17:00
  • Ok, não precisa fazer conversões na declaração de variáveis, somente no que você informa ou compara, qual o valor que esta colocando nessas textBox?

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quarta-feira, 20 de maio de 2015 17:04
  • ja coloquei 20, 30 e 90

    e quando escrevo "Dia quente", "Dia frio" e "Dia agradável" fica em vermelho


    • Editado luk4zz quarta-feira, 20 de maio de 2015 17:22
    quarta-feira, 20 de maio de 2015 17:13
  • 20,30,90 não é double é inteiro:
    veja nesse link 

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quarta-feira, 20 de maio de 2015 17:43
  • Numero decimal é 20.0, 30.0?

    se for, eu tenho q digitar no programa q eu fiz? pq ja fiz e ainda não deu certo



    • Editado luk4zz quarta-feira, 20 de maio de 2015 18:57
    quarta-feira, 20 de maio de 2015 18:55
  • Acabei de testar e funciona perfeitamente:

      Dim F, C As Double
    
            F = Convert.ToDouble(Txtf.Text)
            C = (5.0 / 9.0) * (F - 32.0)
            C = Convert.ToDouble(Txtc.Text)
    
            If C < 20.0 Then
                Txtclas.Text = "Dia frio"
            ElseIf 20.0 <= C And C <= 23.0 Then
                Txtclas.Text = "Dia agradável"
            ElseIf C > 23.0 Then
                Txtclas.Text = "Dia quente"
            End If


    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quarta-feira, 20 de maio de 2015 19:36
  • Public Class Form1


        Private Sub Btncalc_Click(sender As Object, e As EventArgs) Handles Btncalc.Click
            Dim F, C As Double

            F = Convert.ToDouble(Txtf.Text)
            C = (5.0 / 9.0) * (F - 32.0)
            C = Convert.ToDouble(Txtc.Text)

            If C < 20.0 Then
                Txtclas.Text = "Dia frio"
            ElseIf 20.0 <= C And C <= 23.0 Then
                Txtclas.Text = "Dia agradável"
            ElseIf C > 23.0 Then
                Txtclas.Text = "Dia quente"
            End If
        End Sub
    End Class

    Eu coloco isso e não funciona, e algum erro no começo?

    Aparece essa mesma msg:

    Additional information: A cadeia de caracteres de entrada não estava em um formato incorreto.


    quarta-feira, 20 de maio de 2015 19:42
  • O erro deve ser por que seu textBox tem algum espaçamento que colocou sem querer, teste o codigo abaixo ele remove os espaços:

    Dim F, C As Double
    
            F = Convert.ToDouble(Txtf.Text.Trim())
            C = (5.0 / 9.0) * (F - 32.0)
            C = Convert.ToDouble(Txtc.Text.Trim())
    
            If C < 20.0 Then
                Txtclas.Text = "Dia frio"
            ElseIf 20.0 <= C And C <= 23.0 Then
                Txtclas.Text = "Dia agradável"
            ElseIf C > 23.0 Then
                Txtclas.Text = "Dia quente"
            End If
    Os valores que deve informar tem que ser no formato double ou seja (20.0)

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quarta-feira, 20 de maio de 2015 20:06
  • nao funcionou
    quarta-feira, 20 de maio de 2015 20:08
  • Com certeza é algum problema ai, fiz aqui o exemplo e funciona perfeitamente, pode baixar aqui

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quarta-feira, 20 de maio de 2015 20:13
  • Aparece essa msg:

    Additional information: Seqüência de entrada não estava em um formato incorreto.

    quarta-feira, 20 de maio de 2015 20:17
  • É algum problema por ai mesmo, baixa o projeto que fiz e compila, pois funciona perfeitamente
    vê ai na imagem:


    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quarta-feira, 20 de maio de 2015 21:52
  • Caso tenha conseguido a solução finalize sua Thread marcando a resposta

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    domingo, 28 de junho de 2015 14:02