【发布时间】:2011-08-15 21:14:50
【问题描述】:
有没有一种简单的方法来评估像这样的字符串
"(4+8)*2"
所以你会得到 24 的 int 值?
或者是否需要做很多工作才能完成这项工作...?
【问题讨论】:
标签: c# string parsing math evaluation
有没有一种简单的方法来评估像这样的字符串
"(4+8)*2"
所以你会得到 24 的 int 值?
或者是否需要做很多工作才能完成这项工作...?
【问题讨论】:
标签: c# string parsing math evaluation
其他人添加了此内容,然后将其删除。我认为这很酷,因为不需要 3rd 方库。
课程 { 静态无效主要(字符串 [] 参数) { Console.WriteLine(Evaluate("(4+8)*2")); Console.ReadKey(); } public static double Evaluate(字符串表达式) { 数据表表 = 新数据表(); table.Columns.Add("表达式", typeof(string), 表达式); 数据行行 = table.NewRow(); table.Rows.Add(row); return double.Parse((string)row["expression"]); } }【讨论】:
使用 Ncalc:
Expression e = new Expression("(4+8)*2");
Debug.Assert(24 == e.Evaluate());
此外,这个问题之前已经被问过,并且有一些有趣的答案,包括 Ncalc:Evaluating string "3*(4+2)" yield int 18
【讨论】: