2

文字列値をdouble値に文字列変換するときに問題が発生します。例えば:

string val="2.0";
double dval=Convert.ToDouble(val);

フランス語のシステムでこのコードを実行すると、フランス語では。(dot)の代わりに(comma)が使用されるため、エラーが発生しました。

任意の解決策???

4

2 に答える 2

11
Convert.ToDouble(val, System.Globalization.CultureInfo.InvariantCulture);

また

Double.Parse(val, System.Globalization.CultureInfo.InvariantCulture);
于 2012-12-12T06:12:06.100 に答える
2

正しいカルチャを使用してデータを解析します。

「2.0」が何らかの標準ソース(つまりXML)からのものである場合は、CultureInfo.InvariantCulture(abatishcevが提案したように)使用します。

「2.0」が既知のカルチャからのユーザー入力に由来する場合-そのカルチャを使用します(en-USのサンプル):

double dval = Double.Parse("2.0", new CultureInfo("en-US"));

ローカルユーザーからの入力によるものである場合は、正しいユーザーのカルチャ設定にある必要があります。「fr-FR」の場合は「2,0」である必要があります。

「2.0」の値を入力するためにどのカルチャが使用されたかわからない場合は、単に停止して、どのカルチャを使用すべきかを考える方がよいでしょう。

于 2012-12-12T06:15:46.043 に答える