最佳的免费C#数学解析器,支持变量、用户自定义函数和自定义运算符。

3
我正在寻找一个使用变量、自定义操作符和用户定义函数的.NET数学解析器……今天我使用了muParser(有一个.NET封装版本),但我注意到它太慢了!
有人知道另一个运行良好的免费数学解析器吗?
我尝试过NCalc,但它没有变量,所以失败了……
5个回答

8
我今天找到了这三个程序,它们都支持变量和用户自定义函数,但只有muParser似乎支持自定义运算符

对于我的小项目,我选择了Math Parser .NET,因为它支持幂运算符^,而NCalc不支持,而muParser在某种程度上没有那么吸引人。另外,Math Parser .NET支持本地C#委托作为自定义函数!其他库提供的解决方案并不那么优雅。


5

更像是一种通用脚本语言而不是数学解析器,但由于原帖没有指定是否需要进行符号操作,因此我还是点了个赞。 - user47589
@Inuyasha 实际上,当我在项目中使用它时,我只需要基本的加、减和乘法计算器,甚至不需要变量。因此,为此使用脚本引擎似乎有些过度了。但是它非常容易使用,所以我选择了它。 - Max
我认为IronPython对我的目的来说太慢了。我需要一个编译公式的解析器,这样每次调用时就不需要再解析它了。 - Ziba Leah
我没有对IronPython脚本进行任何性能评估,因为对我来说性能并不关键,所以我不能对此发表任何看法。但是我相信你可以动态编译IronPython脚本,然后从C#中使用编译版本。 - Max

4

3
你可以尝试使用Mathos解析器(https://mathosparser.codeplex.com/),它允许你添加自定义运算符、自定义变量和自定义函数。它支持Math命名空间中的几乎所有操作,并具有预先构建的运算符集。由于解析器没有太多依赖关系,所以将源代码粘贴到你的项目中非常容易(它不到500行代码)!

1
尝试使用Irony(http://irony.codeplex.com)。它允许您解析表达式,并可进行各种操作:构建委托以进行极快的计算,突出语法,或者像在我的项目中一样,将其转换为Latex并在数学公式中显示其表示形式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接