私は何かが欠けているかどうかを知りたいです...私は標準的な英国の文化の下で走っています。Double.TryParse()はNumberFormatInfo.NumberGroupSizesを無視しますか?
Double result = 0;
if (Double.TryParse("1,2,3", NumberStyles.Any, CultureInfo.CurrentCulture, out result))
{
Console.WriteLine(result);
}
の予想される出力は何もないだろう... "1,2,3" はdoubleとして解析するべきではありません。しかしそれはそうです。 .NET 2.0 MSDN documentation
AllowThousandsによると、数字列がグループ 区切りを持つことができることを示します。たとえば、数千から数千を分離することができます。 有効なグループ区切り文字は、 NumberGroupSeparatorプロパティとCurrencyGroupSeparatorプロパティが NumberFormatInfoであり、各グループの桁数が で、NumberGroupSizesプロパティおよびCurrencyGroupSizesプロパティが NumberFormatInfoであると決定されます。
は数千人がNumberStyles.Anyに含まれている許可します。 NumberGroupSizesは私の文化にとって3です。 Double.Parseのバグですか?それはちょうど、入力文字列がNumberFormatInfo.NumberGroupSeparator
のゼロ以上のインスタンスを含めることができることを意味
[私の答え](http://stackoverflow.com/questions/1014535/float-parse-doesnt-work-theをテストするとき、私は有効な結果を得た理由はあるかもしれません-way-i-wanted/1014559#1014559)にも同様の質問があります。 – ChrisF
ちょうど興味がありますが、結果の価値は何ですか? – Aaron
私はMicrosoftにバグがあるかどうか尋ねなければならないと思いますが、私はあなたと同じ動作をします。 'NumberStyles.Any^NumberStyles.AllowThousands'をいつでも行うことができますが、3つの正当なグループが存在することを期待している場合はあまり役に立ちません。 – Jodrell