我试图在每个运算符之间拆分此Equation,但String.Split方法输出错误的数字
代码:
string tmpEquation = "200.2−-23.5";
double[] Numbers;
Numbers = tmpEquation.Split(new char[] { '+', '−', '*', '/' })
.Select(s => Double.Parse(s))
.ToArray()
;
输出:
Number[0] = 2002.0
Number[1] = -235.0
应该是:
Number[0] = 200.2
Number[1] = -23.5
我做错了什么?
答案 0 :(得分:5)
解析是文化敏感的。可能您的文化使用的是与dot (.)
不同的小数分隔符。您可以使用InvariantCulture
进行解析:
Numbers = tmpEquation.Split(new char[] { '+', '−', '*', '/' })
.Select(s => Double.Parse(s, CultureInfo.InvariantCulture))
.ToArray()