12

この行を試すと:

float f = float.Parse(val, System.Globalization.NumberStyles.AllowDecimalPoint | System.Globalization.NumberStyles.AllowThousands);

ここで、val は引用符なしで「5.267」に設定された文字列です。次のエラーが発生します。

FormatException: 不明な文字: 。System.Double.Parse (System.String s、NumberStyles スタイル、IFormatProvider プロバイダー) System.Single.Parse (System.String s、NumberStyles スタイル)

そこで、小数点を 5,267 のようにコンマに変更しようとしたところ、次のエラーが発生しました。

FormatException: 不明な文字: 、System.Double.Parse (System.String s、NumberStyles スタイル、IFormatProvider プロバイダー) System.Single.Parse (System.String s、NumberStyles スタイル)

理解できない。私が言うことができる限り、私はこれを正しくやっています。単純なことなのに、どうしてこんなに悲しくなるの?

4

2 に答える 2

17

解析は文化を認識しています。地域の文化に異なる要件がある場合は、文化または他の形式のプロバイダーを渡すことをお勧めします。を使用してみてくださいCultureInfo.InvariantCulture。必要な場合は、10進数オプションは必要ありません。

float f = float.Parse(val,
                      System.Globalization.NumberStyles.AllowThousands,
                      CultureInfo.InvariantCulture);
于 2012-10-17T19:13:44.340 に答える