字符型在字符型数组中的接近值
求一个字符型在字符型数组中的接近值.
------解决方案--------------------
该例程中没有考虑数据的合法性。假设都是理想数据。
procedure TForm1.Button3Click(Sender: TObject);
var sl:TStrings;
i:integer;
MyA: array[0..2] of string;
s:string;
begin
s:='2.5';
sl:=TStringList.Create;
sl.Delimiter:=',';
sl.CommaText :='1,3,5';
for i := 0 to sl.Count-1 do
begin
MyA[i]:= sl.Strings[i];
end;
sl.Free;
//求在mya中的接近的3.
end;
------解决方案--------------------
该例程中没有考虑数据的合法性。假设都是理想数据。
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.