私は非常に奇妙なことに出くわし、何かが足りないのではないかと思っていました。
文字列 (1000 個の区切り文字を含む) を double に解析しようとしていたところ、以下の問題が見つかりました。
CultureInfo ci = CultureInfo.CurrentCulture; // en-ZA
string numberGroupSeparator = CultureInfo.CurrentCulture.NumberFormat.NumberGroupSeparator; //numberGroupSeparator = ,
string numberDecimalSeparator = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;//numberDecimalSeparator = .
string strValue = "242,445.24";
double try1;
double try2;
bool btry1 = Double.TryParse(strValue, out try1); //try1 = 242445.24 : btry1 = true
bool btry2 = Double.TryParse(strValue, NumberStyles.Any, null, out try2); //try2 = 0.0 : btry2 = false <- STRANGE
double try3 = Convert.ToDouble(strValue); //try3 = 242445.24
今、私が使いたくない理由は、Convert.ToDouble
以前に私にいくつかの問題を与えた科学的表記法によるものです.
これがなぜなのか誰か知っていますか?
編集:
現在の文化情報を更新しました。