【问题标题】:Best Free C# Math Parser using variables, user defined functions, custom operators [closed]使用变量、用户定义函数、自定义运算符的最佳免费 C# 数学解析器 [关闭]
【发布时间】:2011-07-15 19:05:55
【问题描述】:

我正在寻找一个使用变量、自定义运算符和用户定义函数的 .NET 数学解析器... 从今天开始,我一直在使用 muParser(有一个用于 .NET 的打包版本),但我发现它太慢了!

有人知道另一个运行良好的数学解析器(免费!)吗?

我试过 NCalc,但它没有变量,所以它失败了..

【问题讨论】:

    标签: .net math generator


    【解决方案1】:

    我使用IronPython 作为表达式评估器。

    【讨论】:

    • 比数学解析器更像是一种通用脚本语言,但由于 OP 没有指定他是否想要进行符号操作,所以要投赞成票。
    • @Inuyasha 实际上,当我在项目中使用它时,我只需要基本的 +、- 和 * 计算器,即使没有变量。所以使用脚本引擎似乎有点过分了。但它太容易使用了,所以我选择了它。
    • 我认为 IronPythons 对我的目的来说太慢了。我需要一个可以编译公式的解析器,所以我不需要每次调用它时都解析它。
    • 我没有对 IronPython 脚本进行任何性能评估,因为性能对我来说并不重要,所以我对此无话可说。但我相信你可以动态编译 IronPython 脚本,然后使用 C# 编译的版本。
    【解决方案2】:

    我今天发现这三个,都支持变量和用户定义的函数,但是似乎只有 muParser 支持自定义运算符

    对于我的小玩具项目,我选择了Math Parser .NET,因为它支持^ 的幂,而 NCalc 不支持,而且 muParser 不知何故对我没有那么大的吸引力。还有另一个好处:Math Parser .NET 支持将本机 C# 委托作为自定义函数!其他库提供的解决方案看起来并不那么优雅。

    【讨论】:

      【解决方案3】:

      您可以尝试 Mathos Parser (https://mathosparser.codeplex.com/),它允许您添加自定义运算符、自定义变量和自定义函数。它支持来自 Math 命名空间的几乎所有操作,并具有一组预构建的操作符。由于解析器没有那么多依赖项,因此只需将源代码粘贴到您的项目中就很容易(不到 500 行代码)!

      【讨论】:

        【解决方案4】:

        试试讽刺 (http://irony.codeplex.com)。它允许你解析表达式,你可以用它做任何事情:构建一个用于极快计算的委托,突出显示语法,或者像我的项目中一样,转换为 Latex 并在数学公式中显示它的表示。

        【讨论】:

          【解决方案5】:

          您应该看看 Jace.NET。 Jace 是高性能 c# 数学解析器,支持所有数学运算、变量、(自定义)函数...它支持 Microsoft 的所有主要 .NET 平台:.NET 4.x、Windows Phone 7 和 8、Windows Store。

          https://www.nuget.org/packages/Jace

          https://github.com/pieterderycke/Jace

          【讨论】:

            猜你喜欢
            • 2012-02-13
            • 2015-05-09
            • 2023-03-25
            • 2013-07-13
            • 2016-09-01
            • 1970-01-01
            • 1970-01-01
            • 2018-07-01
            • 1970-01-01
            相关资源
            最近更新 更多