Fragensteller
Ungültige Konvertierung von der Zeichenfolge ²+ in Typ Double.

Frage
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 -
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 -
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]- Bearbeitet Olaf HelperMVP Donnerstag, 7. Januar 2016 16:04