我正在尝试将字符串转换为执行算术表达式但得到的是格式表达式。我想要计算表达式和最终答案。
// original value
string text = @"4'-8"x5/16"x20'-8 13/16";
string path = text.Replace("'", "*12").Replace("-", "+").Replace("x", "+").Replace(" ", "+").Replace(@"""", "");
System.Console.WriteLine("The original string: '{0}'", text);
System.Console.WriteLine("The final string: '{0}'", path);
Console.WriteLine();
decimal d = decimal.Parse(path, CultureInfo.InvariantCulture);
Console.WriteLine(d.ToString(CultureInfo.InvariantCulture));
// after converting got this value in debug
//'4*12+8+5/16+20*12+8+13/16'
您可以使用 DataTable
类来评估数学表达式字符串,使用 Compute()
方法,传递一个 String.Empty
作为第二个参数。
var parsingEngine = new DataTable(); //in System.Data
int i = (int)parsingEngine.Compute("3 + 4", String.Empty);
decimal d = (decimal)parsingEngine.Compute("3.45 * 76.9/3", String.Empty);
请注意,Compute
返回一个对象,您必须小心地将其转换为基于您的数学表达式应产生的结果的适当类型。
我是一名优秀的程序员,十分优秀!