帮你Up,我也问过一次了,有人告诉我使用Javascript可以实现.你可以试试.我没有试过."若可以使用JAVASCRIPT这样的脚本语言就简单了:
b=eval("b"+op+"a");...
"op="+" or "*" or other...

解决方案 »

  1.   

    string params = "3*5/2";
    int index = param.indexof("*",0,param.length);
    int a = Convert.ToInt32(param.substring(0,index));//取出第一个数。
    param = param.remove(0,index+1);
    char opera1 = param[0];//操作符
     index = param.indexof("/",0,param.length);
    int b = Convert.ToInt32(param.subtring(0,index));//取第二个操作数。
    char opera2 = param[0];//操作符
    int c = Convert.ToInt32(param.remove(0,index+1));//取第三个操作数
    如果这是一个实例,你可按相似方法,具体操作符的运算规则不同,你可参考任何一本数据结构的书,上面有关于数学计算的实现。很简单的,用堆栈实现。如果就是这个字符串,直接分析出数据计算就可以了
      

  2.   

    int i = Arithmetic.Val("1+2+3+4*5");
       
    */
    #endregionusing Microsoft.JScript;
    using Microsoft.JScript.Vsa;
    using Microsoft.Vsa;namespace Rainsoft.TextEx
    {
       public class Arithmetic
       {
          public static object Val(string s)
          {
             VsaEngine v = new VsaEngine();
             v.InitVsaEngine("", new BaseVsaSite());
             return Microsoft.JScript.Eval.JScriptEvaluate(s, v);
          }
       }
    }
      

  3.   

    自己搞个词法分析器噢,TABLE-DRIEVEN,TABLE 不大的
      

  4.   

    declare @sum varchar(800)
    set @sum='select top ' + cast(2 * 3/2 as varchar) + ' * from empinfo'
    exec (@sum)
      

  5.   

    timiil(小华) 請說明一下,好嗎?謝謝