大家谁有可以计算各种公式的程序啊,共享一下可以吗?任意公式都可以使用的现成代码,比如(a+b)*c+d*e,谢谢

解决方案 »

  1.   

    function Calculate(Expression: string): string;
    var
      vScript: Variant;
    begin
      vScript := CreateOleObject('ScriptControl');
      vScript.Language := 'JavaScript';
      Result := vScript.Eval(Expression);
    end;
      

  2.   

    var i:string;
        r:real;
    ....
    i:='2+3*4-(12+1)';
    strSQL:="select "+i;
    rs.open(strSQL);
    r:=rs.field(0);
      

  3.   

    仔细看了一下theone_jxm的.
      感觉这个方法还真的比较巧妙.佩服!!!!
      

  4.   

    GoldShield(金盾),我试了,他的方法确实是非常巧妙啊,可是依赖与数据库啊
      

  5.   

    还没解决啊,我今晚回家再找一找,好像是D3or D5 写的 比较长
      

  6.   

    我用yacc/lex描述了一个,支持自定义函数与变量。www.playicq.com上传了一个,有兴趣去下吧。
      

  7.   

    又是这个问题!!!看http://blog.csdn.net/ly_liuyang/archive/2002/02/16/13334.aspx!!!提交到FAQ吧
      

  8.   

    还可以用IFPS湖泊RemObject的Pascal Script,那个就强大了
      

  9.   

    theone_jxm() 你的代码确实比较好,但是具体到底是通过什么实现的那?能不能解释一下?
    function Calculate(Expression: string): string;
    var
      vScript: Variant;
    begin
      vScript := CreateOleObject('ScriptControl');
      vScript.Language := 'JavaScript';
      Result := vScript.Eval(Expression);
    end;
    还有后面的又是什么意思?
    var i:string;
        r:real;
    ....
    i:='2+3*4-(12+1)';
    strSQL:="select "+i;
    rs.open(strSQL);
    r:=rs.field(0);准确率有多少
      

  10.   

    到http://hubdog.csdn.net/中找,有公式计算程序源码,找到后按自己的要求修改一下就可以了。
      

  11.   

    http://hubdog.csdn.net/UpdateList/ul20031207.htm