C# 字符串转换为计算公式
2016-03-09 15:18
447 查看
转载地址:http://blog.csdn.net/smartsmile2012/article/details/8214989
//方法一 利用DataTable中的Compute方法 例如:1*2-(4/1)+2*4=6
string formulate = string.Format("{0}*{1} - {2}/{3} +{1}*{2}", 1, 2, 4, 1);
DataTable dt = new DataTable();
Response.Write(dt.Compute(formulate, "").ToString());
Response.Write("<br/>");
//方法二 利用JS中强大的Eval函数 可以带if-else判断 添加COM引用:Microsoft Sctipt Control 1.0
MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControlClass();
sc.Language = "JavaScript";
string formulate1 = string.Format("if({0}==2)((({0}*{1})-{3}+({1}*{2}))+{4}/{0});else(1+2*3)", 2, 3, 4, 5,6);
object objResult = sc.Eval(formulate1);
if (objResult != null)
{
Response.Write(objResult.ToString());//1+12+3
}
// 方法三 需将Microsoft.JScript 和Microsoft.Vsa加入参考并引用Microsoft.JScript
public object EvalExpress(string sExpression)
{
Microsoft.JScript.Vsa.VsaEngine ve = Microsoft.JScript.Vsa.VsaEngine.CreateEngine();
return Microsoft.JScript.Eval.JScriptEvaluate(sExpression, ve);
}
//方法一 利用DataTable中的Compute方法 例如:1*2-(4/1)+2*4=6
string formulate = string.Format("{0}*{1} - {2}/{3} +{1}*{2}", 1, 2, 4, 1);
DataTable dt = new DataTable();
Response.Write(dt.Compute(formulate, "").ToString());
Response.Write("<br/>");
//方法二 利用JS中强大的Eval函数 可以带if-else判断 添加COM引用:Microsoft Sctipt Control 1.0
MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControlClass();
sc.Language = "JavaScript";
string formulate1 = string.Format("if({0}==2)((({0}*{1})-{3}+({1}*{2}))+{4}/{0});else(1+2*3)", 2, 3, 4, 5,6);
object objResult = sc.Eval(formulate1);
if (objResult != null)
{
Response.Write(objResult.ToString());//1+12+3
}
// 方法三 需将Microsoft.JScript 和Microsoft.Vsa加入参考并引用Microsoft.JScript
public object EvalExpress(string sExpression)
{
Microsoft.JScript.Vsa.VsaEngine ve = Microsoft.JScript.Vsa.VsaEngine.CreateEngine();
return Microsoft.JScript.Eval.JScriptEvaluate(sExpression, ve);
}
相关文章推荐
- csharp: Socket
- c# 代码调用c++生成的dll过程
- C#转义字符总结
- C# Devexpress gridControl 自定义编辑器 设置弹出框(弹出框包含gridLookUpEdit)
- c#中控件使用时属性设置记录集
- C#开发COM组件
- 路径规划(最短路径)算法C#实现
- 【笔记】《C#大学教程》- 第7章 数组
- C# yield return用法分析
- C# 变量和常量
- C# Func的介绍
- C#中枚举类型的使用
- 认识c#中结构类型
- C#第六节课
- C# 拆箱与装箱 要严格控制,数量多起来严重影响效率
- C#中的数据类型
- C# 静态扩展方法
- C#播报语音:检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败
- C# 非托管资源释放
- C# 两行代码实现 延迟加载的单例模式(线程安全)