方法一:
通过DataTable的Compute方法进行计算
优缺点分析:
1、优点:使用方便,便捷,能快速上手
2、缺点:只能计算普通表达式,不能嵌套字符串比如我想设置参数pi为计算的时候 读取pi为Math.PI
代码演示:
/// <summary>
/// 把字符串公式计算成数字
/// </summary>
/// <returns></returns>
[HttpGet]
public IActionResult Get()
{
string ComputeStr1 = "1+2*3-4/2*(1+2)";
//第一种方法: 使用DataTable.Compute方法计算公式
DataTable dt = new DataTable();
var num1 = dt.Compute(ComputeStr1, null);
return Ok(num1);
}
方法二:
通过引入Nuget包NCalc的Evaluate方法进行计算
优缺点分析:
1、优点:能随意定制字符串只要最终结果符合是所有的数字在进行计算,就可以算出结果
2、缺点:需要引入Nuhet包,间接性使用
代码演示:
/// <summary>
/// 把字符串公式计算成数字
/// </summary>
/// <returns></returns>
[HttpGet]
public IActionResult Get()
{
string ComputeStr2 = "1+2*3-4/2*(1+2)+pi";
//第二种方法: 使用Ncalc.Evaluate方法计算公式
Expression exp = new Expression(ComputeStr2);
exp.Parameters["pi"] = Math.PI;
var num2 = exp.Evaluate();
return Ok(num2);
}
以上就是C# 两种计算字符串的方法,希望能帮到大家!!!