C#
自动计算字符串公式的值(三种方式)
从网络上找到这段源码,重新整理后测试通过.
有三种方式可自动计算字符串公式的值:
1.
最简单的方式,由SQL语句计算
2. 使用Microsoft.Javascript计算
3.
使用后序表达式计算(数据结构)
原文内容:
在编程应用程序过程中,有时需要字符串表达式的值。
如字符串:"23+56/(102-100)*((36-24)/(8-6))",计算结果=191。
根据数据结构栈的应用介绍,通过把表达式由中序式转换成后序式,再用栈来进行计算。
如上述字符串表达式:"23+56/(102-100)*((36-24)/(8-6))",
转换为后序时为:"23|56|102|100|-|/|*|36|24|-|8|6|-|/|*|+"(其中字符"|"为分隔符)。
本程序代码如下:在VS2008
+winXP下编译通过。

C# Code:
public class CalcStringExpression
{
public static float CalcBySQL(string expression)
{
string SQL = "SELECT " expression " AS
RESULT_VALUE";
SqlConnection conn
= new SqlConnection("自己定义连接字符串");
SqlCommand
cmd = new SqlCommand(SQL,
conn);
object o = cmd.ExecuteScalar();
return float.Parse(o.ToString());
}
public static float CalcByJs(string expression)
{
Microsoft.JScript.Vsa.VsaEngine
ve =
Microsoft.JScript.Vsa.VsaEngine.CreateEngine();
object returnValue =
Microsoft.JScript.Eval.JScriptEvaluate((object)expression,
ve);
return float.Parse(returnValue.ToString());
}
public static float CalcByCalcParenthesesExpression(string expression)
{
string result = new CalcParenthesesExpression().CalculateParenthesesExpression(expression);
return float.Parse(result);
}
}
转: c# 字符串公式计算,布布扣,bubuko.com
转: c# 字符串公式计算
原文:http://www.cnblogs.com/jearay/p/3613584.html