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

时间:2015-12-18 22:26:34

标签: c# math unity3d calculator unity5

我计划编写一个程序或者更确切地说是能够分析字符串参数的函数,而该参数又将是数学表达式。只允许4个基本操作(加法,减法,乘法和除法),数字都是从-100到100的整数。结果允许浮点数。我知道注册表以相同的方式工作,即计算两个数字的结果并存储它,而不是计算存储值的结果以及下一个操作数和存储。等等,直到没有操作数。操作数的数量通常为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()函数的变体。

1 个答案:

答案 0 :(得分:1)

在.NET中,没有一些高级辅助函数可以帮助您解决此问题。您必须在代码中解析并标记化字符串。但是,第三方库可以满足您的需求,例如Expression CompilerSimple Math ParserMathos Parser等等。搜索数学表达式解析器。

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

Hans Passant提到simple solution,也许就是你需要的。你得到了表达式的结果,所以如果你只需要它,而不是实际的表达式标记,那么.NET就能让你满意。