Ich würde den Wert im Array suchen der am nähesten am gegebenen Wert ist.
Zuerst als nähesten Wert den ersten Wert des Arrays nehmen, dann die restlichen durchlaufen zum prüfen:
Delphi-Quellcode:
var
res_index: Integer;
i: Integer;
diff: Integer;
tmp: Integer;
begin
res_index := 0;
diff := abs(array[0] - your_value);
for i := 1 to length(array) - 1 do
begin
tmp := abs(array[i] - your_value);
//wenn differenz kleiner bisheriger differenz
if (tmp < diff) then
begin
diff := tmp;
res_index := i;
//wenn exakter Wert gefunden wurde
if (diff = 0) then
begin
break;
end;
end;
end;
showmessage('best value is: ' + inttostr(array[res_index]));
end;