4

この解析メソッドのオーバーロードを使用して、文字列を double 値に解析しようとしています。

double.Parse("198.222213745118", CultureInfo.CurrentUICulture);

CultureInfo.CurrentUICulture は fr-FR です。しかし、これは FormatException タイプの例外をスローしています。

その理由は何ですか?

4

3 に答える 3

5

フランス語 (すなわちfr-FR) は、ピリオドではなく、コンマを使用して小数部分の開始を示します。彼らはピリオドを使用して数千を区切ります。

于 2013-09-17T10:36:33.903 に答える
0

この質問は古いことは知っていますが、私の答えは他の人に役立つかもしれません。これが答えです:

double.Parse("198.222213745118", System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);

それ以外の

double.Parse("198.222213745118", CultureInfo.CurrentUICulture);
于 2016-04-02T16:15:03.837 に答える
-2

.Parse ではなく Double.TryParse を使用することをお勧めします。使用する方が安全であり、解析時に例外が発生しないようにするためです。

使用するコードは次のとおりです。

double answer = -1;
Double.TryParse("Value", out answer);

あとは、文字列を実際に解析したかどうかを確認する条件ステートメントを実行するだけです。

于 2013-09-17T10:40:24.893 に答える