大家都知道,用函数strtofloat('1.1')可以得到结果浮点数值:1.1,用strtoint('1')可以得到整型数值:1 
问题是:DELPHI有没有一个函数:可以接收一个字符串(例如:'1+2'或'1.1+2.2'或‘1+sin(1)’等有效的可以返回浮点数值的表达式),然后返回一个浮点数值:表达式的数值,例如:函数f('1.1+2.2')可以返回浮点数:3.3,
如果没有,怎么可以自己写一个实现如此功能的函数,多谢!

解决方案 »

  1.   


    如用SQL SERVER, 否则后带上存在的表名ss := '1.1+2.2';
    query1.close;
    query1.sql.text := 'select ' + ss + ' as RetValue ';
    query1.Open;
    showmessage(query1.fieldbyname('retvalue').asstring);
    query1.close;
      

  2.   

    你可以寫一個functionfunction addstring(str)
    var addstr: array of stirng(1)
        i:integer;
        mothed : array[1..4] of string(1)
        addstr2:array of float;
    begin
    mothed[1]:='+';
    mothed[2]:='-';
    mothed[3]:='*';
    mothed[4]:='/';
    setLenght(addstr,len(str));
    setlenght(addstr2,len(str));
    for i:=1 to lenght(str) do
      begin
      if str[i]=mothed[1] then.
      ......
      ........
      end;
    end;
      

  3.   

    如果你够有本事,可以想想dos时代里面的宏. ===================================================================                           ... 我疯了..... ===================================================================