如何构建计算数学表达式的程序

How to structure program that calculates math expression

我打算编写一个程序或更确切地说是函数来分析字符串参数,而字符串参数又是数学表达式。只允许4种基本运算(加、减、乘、除),数字都是-100到100之间的整数。结果允许是float。我知道注册表的工作方式相同,即计算两个数字的结果并存储它,而不是计算存储值的结果和下一个操作并存储。依此类推,直到没有剩余的操作数。操作数的数量通常是 2 个,但我需要 3 个甚至更多,所以是的,需要更多的操作数。

我想知道您将如何在 C# 中构造它?在这种情况下,您会使用哪些工具辅助函数?

注意:我正在处理 Unity 5.1.4 项目,我想在其中使用数学解析器。 Unity 是 .NET 2.0

注意:这似乎是最有希望的:http://mono.1490590.n4.nabble.com/Javascript-eval-function-in-c-td1490783.html 它使用 eval() 函数的变体。

在 .NET 中,没有一些高级辅助函数可以帮助您完成此操作。您必须在代码中解析和标记字符串。然而,有第三方库可以满足您的需求,例如 Expression Compiler, Simple Math Parser, Mathos Parser 和许多其他库。搜索数学表达式解析器。

如果你想从头开始做一个,你可以看看现有的代码。

Hans Passant 提到了 simple solution,也许正是您所需要的。您会得到表达式的结果,所以如果您只需要那个,而不是实际的表达式标记,那么 .NET 可以满足您的要求。

此工具完成了工作,没有添加外部引用、dll 或其他内容:http://mono.1490590.n4.nabble.com/Javascript-eval-function-in-c-td1490783.html