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;

1717

被折叠的 条评论
为什么被折叠?



