假设 szYuan = '0.234 元';szTemp用来存返回字符串
var nLen: Integer;
...
nLen := StrPos(szYuan, '元') - PChar(szYuan);
StrLCopy(PChar(szTemp), szYuan, nLen);
...
OK.

解决方案 »

  1.   

    看看这个函数能满足你的要求吗?
    function AnyStrToFloat(const S: string): Extended;
    var
      i:Integer;
      T1,T2:string;
      Dec:Boolean;
    begin
      T1:=Trim(S);
      T2:='0';
      Dec:=False;
      for i := 1 to Length(T1) do
      begin
        if not (T1[i] in ['0'..'9','.']) then
          Break;
        if T1[i]='.' then
          if Dec then
            Break
          else
            Dec:=True;
        T2:=T2+T1[i];
      end;
      Result:=StrToFloat(T2);
    end;
      

  2.   

    var 
      s: String;
      i: Integer;
    begin
      s := '0.234元';
      i := Pos('元', s);
      if i > 0 then
        delete(s, i, Length(s) - i + 1);
    end;
      

  3.   

    Icebird(冰鸟) 兄的函数很好!全都给分!