我只是遇到了一些非常奇怪的事情,只是想知道我是否遗漏了什么。
我试图将一个字符串(带有千位分隔符)解析为一个双精度字符串,并发现了以下问题。
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
,是因为科学记数法以前给我带来了一些问题。
有人知道为什么会这样吗?
编辑:
我已经更新了我当前的文化信息。