【发布时间】:2010-06-20 14:53:50
【问题描述】:
我在谷歌上搜索了一下,结果一片空白——所以是时候再次测试 SO 的好人了! :)
谁能推荐一个解析和计算数学表达式的开源库(.NET 的首选)?
例如输入表达式="2+(n-1)*4",参数键/值n=2,输出=6。
【问题讨论】:
标签: c# .net parsing open-source
我在谷歌上搜索了一下,结果一片空白——所以是时候再次测试 SO 的好人了! :)
谁能推荐一个解析和计算数学表达式的开源库(.NET 的首选)?
例如输入表达式="2+(n-1)*4",参数键/值n=2,输出=6。
【问题讨论】:
标签: c# .net parsing open-source
我会看看NCalc。以下是该项目的描述:
NCalc 是 .NET 中的数学表达式计算器。 NCalc 可以解析任何表达式并评估结果,包括静态或动态参数和自定义函数。有关我们用于创建此框架的技术的更多信息,请阅读本文:http://www.codeproject.com/KB/recipes/sota_expression_evaluator.aspx
如果这对于您的目的来说太复杂了,您可以查看任何 C# 的“解析器生成器”。这些工具允许您指定表达式的语法并生成解析它的代码。为数值表达式编写解析器应该非常简单。参见示例
【讨论】:
好吧,我过去曾为此使用过IronPython。这实际上是一条非常强大的路线,因为您可以将 API 暴露给表达式。
除此之外,我相信Irony 解析器生成器有一个数学表达式示例解析器。 (如果他们不这样做,那么创建将是微不足道的。)
在这方面也有很多谷歌搜索结果:
NCalc
.NET Math Expression Parser
Mathematical Expression Parser for .NET
仅举几例。
【讨论】: