2012-04-13 9 views
2

Ich habe diesen Fehler, wenn ich versuche, String in Double auf WP7 C# zu konvertieren.System.FormatException beim Versuch, String in Double zu konvertieren

tokenvalue = Convert.ToDouble(saParsed[i].Replace(".", ",")); 

Ich bekomme diesen Fehler in WP7. Eine erste Chance Ausnahme des Typs System.FormatException aufgetreten in mscorlib.dll

Gibt es eine Möglichkeit, es zu vermeiden, oder ist es nur ein Fehler von Emulator?

+5

Was ist der Wert der Zeichenfolge auf 'saParsed [i]'? – phoog

+0

Können Sie uns den String Wert zeigen? Und verwenden Sie 'TryParse' für eine bessere Fehlerbehandlung. – joshua

+6

Anstatt ./ zu ersetzen, ist es immer besser, CultureInfo zu spezifizieren. –

Antwort

7

Zunächst können Sie versuchen, diese zu nutzen:

double tokenvalue = Convert.ToDouble(saParsed[i], CultureInfo.InvariantCulture); 

Auf jeden Fall sollten Sie besser überprüfen, ob es in Ordnung ist:

double tokenvalue; 
if (Double.TryParse(saParsed[i], out tokenvalue) 
{ 
    // Do what you please here 
} 
+0

Es hat mein Problem nicht gelöst. Habe immer noch den gleichen Fehler. – user1138470

+0

@ user1138470: zeigen Sie uns 'sParsed [i]' Wert – Marco

+0

saParsed [i] kann zum Beispiel 4.0 oder 4.1 sein – user1138470

0

so etwas wie dies versuchen.

var tokenvalue = Convert.ToDouble(saParsed[i]); 
var tokenValueText = tokenValue.ToString().Replace(".", ","); 

Hoffen, dass es gut funktionieren wird, wenn saParsed [i] wird den gültigen doppelten Wert zu halten.

0

Versuchen Sie es mit der folgenden Aussage zu konvertieren:

double tokenvalue; 
if (double.TryParse(saParsed[i], NumberStyles.Any, 
    NumberFormatInfo.CurrentInfo, out tokenvalue)) 
{ 
    // Convertion was successfull 
} 
Verwandte Themen