gpt4 book ai didi

javascript - 无法使用 Method Math Parser 评估数学表达式

转载 作者:太空宇宙 更新时间:2023-11-03 15:49:13 27 4
gpt4 key购买 nike

我正在使用 Mathos Math parser评估数学表达式。我正在尝试解析以下表达式,但它抛出 FormatException - 输入字符串的格式不正确..

Mathos.Parser.MathParser parser = new Mathos.Parser.MathParser();
string expression = "Math.pow((4),(5))"; //Or "Math.sqrt(1)";
string result = parser.Parse(expression).ToString();

在我的应用程序中,我使用 MathDox mathml 编辑器,它为我提供了 mathml.使用这个 mathml,我使用给定的 javascript 将它解析为简单的数学表达式 here然后将此表达式发送到我的 c# 代码进行评估。我的表情有什么问题。

注意:由于某些情况,我没有评估 javascript 中的数学表达式。

最佳答案

它不起作用的原因是因为 pow 函数被定义为 localFunction。下面的代码应该可以工作:

Mathos.Parser.MathParser parser = new Mathos.Parser.MathParser();
string expression = "pow(4,5)";
string result = parser.Parse(expression).ToString();

// or

string expression2 = "4^5";
string result2 = parser.Parse(expression2).ToString();

Assert.AreEqual(result, result2);

基本上,要使用 Math.Pow 函数,您要么使用内置幂运算符,要么使用内置幂函数

您可以随时更改幂函数的定义。这是当前的定义:

  1. 幂函数:LocalFunctions.Add("pow", x => (decimal)Math.Pow((double)x[0], (double)x[1]));
  2. 幂运算符:OperatorList.Add("^");OperatorAction.Add("^", (numberA, numberB) => (decimal)Math.Pow((double )numberA, (double)numberB));

关于javascript - 无法使用 Method Math Parser 评估数学表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26601475/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com