基于文本的基本公式计算器 Function/Class

Text Based Basic Formula Calculator Function/Class

正在寻找类似的东西

int Result; 
DataTable dt2 = new DataTable();
var v = dt2.Compute("3+2-34*12", "");
Result=Convert.ToInt32(v);

上面的代码,解决了文本基础公式。不幸的是,上面的代码仅适用于一些基本运算符(+、-、/、*)。需要更复杂一点的(至少像平方根,^)。

你能帮我找点东西来解决更复杂的方程吗?

您可以为此使用 Roslyn scripting API。添加 Microsoft.CodeAnalysis.CSharp.Scripting 包并像这样评估 C# 代码:

static async Task<double> EvaluateFormulaAsync(string formula)
{
    return await CSharpScript.EvaluateAsync<double>(formula,
        ScriptOptions.Default.WithImports("System.Math"));
}

用法:

var result = EvaluateFormulaAsync("Sqrt(2) + 2 * 15").Result; // 31.4142135623731

注意:脚本 API 需要 .NET Framework 4.6+ 或 .NET Core 1.1