none
Ungültige Konvertierung von der Zeichenfolge ²+ in Typ Double. RRS feed

  • Frage

  • Wenn ich mein Programm Teste kommt die Obenstehende Fehlermeldung, dabei wird folgende Zeile markiert.

    Value ist ein Label Objekt.

    Value.Text = ToString(CurrentA & "²+" & CurrentB & "²=" & CurrentC & "²")

    Donnerstag, 7. Januar 2016 15:26

Alle Antworten

  • Hi,

    welchen Datentyp haben CurrentA, CurrentB, CurrentC? Ich nehme an, Double, oder? Falls ja, wandele die Werte in einen string um.

    Value.Text = ToString( CurrentA.ToString() & "²+" & CurrentB.ToString() & "²=" & CurrentC.ToString() & "²" )

    oder, was evtl. etwas übersichtlicher aussieht:

    Value.Text = String.Format( "{0}²+{1}²={2}²", CurrentA.ToString(), CurrentB.ToString(), CurrentC.ToString() )


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Donnerstag, 7. Januar 2016 15:46
    Moderator
  • Hallo,

    die Fehlermeldung ist an sich eindeutig, kann aber hier auch nicht verstehen woher diese kommt. Denn eine Konvertierung scheint nicht statt zu finden. Die Frage ist daher welche Werte CurrentA/B/C haben. Außerdem wie die ToString-Methode aussieht.
    Weiterhin wäre es gut zu wissen ob du irgendwo den Text des Labels wieder weiter verwendest oder ob du irgendwo in damit verbundenem Code einen String in ein Double konvertierst.

    Das Zeichen 178 aus der Fehlermeldung könnte übrigens das ²-Zeichen sein. Nur ist der String noch mindestens um ²= länger. Daher macht die Fehlermeldung so auch noch nicht so viel Sinn.


    Tom Lambert - .NET (C#) MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Donnerstag, 7. Januar 2016 15:48
  • Das kaufmannische Und (&) ist in VB/VB.NET schon was besonderes, es konvertiert alles zu String, selbst mit eingeschalteter Option Strict; so was hier funktioniert deswegen ohne Fehlermeldung

        Sub Main()
            Dim CurrencyA As Double = 1.234
            Dim CurrencyB As Double = 2.345
            Dim CurrencyC As Double = 3.456
            Dim text As String
    
            text = CurrencyA & "² + " & CurrencyB & "² = " & CurrencyC
    
        End Sub

    Siehe & Operator (Visual Basic)

    Von daher vermute ich mal, das es an der Methode "ToString" liegt und diese als Parameter eigentlich einen Wert vom Typ Double erwartet. Wenn dem so ist, müsste die Codezeile entsprechend

    Value.Text = ToString(CurrentA) & "²+" & ToString(CurrentB) & "²=" & ToString(CurrentC) & "²"
    lauten, also jede einzelne Double Variable behandeln und nicht alles.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]


    Donnerstag, 7. Januar 2016 15:59