基于文本的基本公式计算器函数/类
Posted
技术标签:
【中文标题】基于文本的基本公式计算器函数/类【英文标题】:Text Based Basic Formula Calculator Function/Class 【发布时间】:2017-09-19 01:08:15 【问题描述】:寻找类似的东西
int Result;
DataTable dt2 = new DataTable();
var v = dt2.Compute("3+2-34*12", "");
Result=Convert.ToInt32(v);
上面的代码,它解决了文本基础公式。不幸的是,上面的代码只适用于一些基本的运算符(+、-、/、*)。需要更复杂一点的(至少像平方根,^)。
你能帮我找到一些更复杂的方程来解决吗?
【问题讨论】:
mathparser.org ? 【参考方案1】:您可以为此使用 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
【讨论】:
以上是关于基于文本的基本公式计算器函数/类的主要内容,如果未能解决你的问题,请参考以下文章
Pandas处理dataframe的文本数据列:使用str属性获取数据列的字符串方法类split函数基于指定分隔符拆分数据列的内容为列表使用len计算每个列表的长度