是否可以将任何字符串(例如“x ^ 2-3x + 4”或“x ^ 3 /(exp(x)-1)”)转换为数学表达式,以便我可以在方法如:
public static void Function(double x, ref double y)
{
y = ConvertStringToMathExpression("x^3/(exp(x)-1)");
}
我知道“将字符串转换为数学表达式”还有其他帖子,但所有这些帖子都要求为已经知道的字符串提供算法。我想在运行时输入数学表达式。
象征性分化是否很难做到?我仍然是c#的初学者,不知道我是否可以这样做。是否有关于如何进行符号区分的体面文档?
答案 0 :(得分:0)
这是我的代码,也许它可以帮助其他人弄清楚如何使用NCalc:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using NCalc;
public partial class Form1 : Form
{
public ExpressionString expressi = new ExpressionString("pow([x],3)/(exp(x)-1)");
public void FunctionInt(double x, double xminusa, double bminusx, ref double y, object obj)
{
Expression e = new Expression(expressi.expression, EvaluateOptions.IgnoreCase);
e.Parameters["x"] = x;
object result = e.Evaluate();
y = Convert.ToDouble(result);
}
}