2012-04-13 8 views
2

WP7 C#でStringをDoubleに変換しようとするとこのエラーが発生します。StringをDoubleに変換しようとするとSystem.FormatExceptionが発生する

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

このエラーはWP7で発生します。 System.FormatExceptionの最初のチャンス例外が発生しましたmscorlib.dll

これを避ける方法はありますか、それともエミュレータの障害のみですか?

+5

'saParsed [i]は'の文字列の値は何ですか? – phoog

+0

文字列値を表示できますか?そして、より良いエラー処理のために 'TryParse'を使用してください。 – joshua

+6

./を置き換えるのではなく、常にCultureInfoを指定する方が良いです。 –

答えて

7

まず、あなたはこれを使用しようとすることができます:

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

それは大丈夫だ場合とにかく、あなたはより良いチェックしたい:

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

それは私の問題を解決しませんでした。それでも同じエラーがあります。 – user1138470

+0

@ user1138470:saParsed [i]の値を表示 – Marco

+0

saParsed [i]はたとえば4.0または4.1です。 – user1138470

0

はこのような何かを試してみてください。

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

saParsed [i]が有効なdouble値を保持しているとうまくいくと思っています。次の文でそれを変換する

0

試してみてください。

double tokenvalue; 
if (double.TryParse(saParsed[i], NumberStyles.Any, 
    NumberFormatInfo.CurrentInfo, out tokenvalue)) 
{ 
    // Convertion was successfull 
} 
関連する問題