您的位置:首页 > 其它

强制转换字符串为数值型

2006-05-12 15:19 134 查看
 
  function StrToNumeric(ASource: WideString):Double;
  var
    wsTemp:String;
    nCount:longInt;
    bDot:Boolean;
    bMinus:Boolean;
  begin
    wsTemp:=ASource;
    nCount:=1;
    while nCount<=Length(wsTemp) do begin
      if not (wsTemp[nCount] in ['0'..'9','.','-']) then begin
        delete(wsTemp,nCount,1);
      end
      else begin
        nCount:=nCount+1;
      end;
    end;
    bDot:=false;
    bMinus:=false;
    nCount:=1;
    if Length(wsTemp)>0 then begin
      if (wsTemp[1] in ['-']) then bMinus:=true;
    end;
    while nCount<=Length(wsTemp) do begin
      if not (wsTemp[nCount] in ['0'..'9']) then begin
        if wsTemp[nCount]='-' then delete(wsTemp,nCount,1);
        if (wsTemp[nCount]='.')  then begin
          if bDot then begin
            delete(wsTemp,nCount,1);
          end
          else begin
            nCount:=nCount+1;
            bDot:=true;
          end;
        end;
      end
      else begin
        nCount:=nCount+1;
      end;
    end;
    if bMinus then wsTemp:='-'+wsTemp;
    if wsTemp='' then result:=0 else result:=StrToFloat(wsTemp);
  end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  delete function string