该例程中没有考虑数据的合法性。假设都是理想数据。procedure TForm1.Button1Click(Sender: TObject); var sl:TStrings; i,j:integer; a,b:double; s:string; begin s:='2.5'; a:=abs(strtofloat(s)); j:=0; sl:=TStringList.Create; sl.Delimiter:=','; sl.CommaText :='1,3,5'; for i := 0 to sl.Count-1 do begin b:=abs(strtofloat(sl.Strings[i])-strtofloat(s));//取差的绝对值 if a>b then begin //如果离S近就更换当前值 a:=b; j:=i; end; end; showmessage(sl.Strings[j]); sl.Free; //求在mya中的接近的3. end; end.
var sl:TStrings;
i,j:integer;
a,b:double;
s:string;
begin
s:='2.5';
a:=abs(strtofloat(s));
j:=0;
sl:=TStringList.Create;
sl.Delimiter:=',';
sl.CommaText :='1,3,5';
for i := 0 to sl.Count-1 do
begin
b:=abs(strtofloat(sl.Strings[i])-strtofloat(s));//取差的绝对值
if a>b then begin //如果离S近就更换当前值
a:=b;
j:=i;
end;
end;
showmessage(sl.Strings[j]);
sl.Free; //求在mya中的接近的3.
end;
end.