Registriert seit: 17. Nov 2005
Ort: Hamburg
1.077 Beiträge
Delphi XE2 Professional
|
Re: Auf einen standartisierten Wert aufrunden
2. Mär 2006, 14:34
Versuch es mal hiermit.
In Edit1 gibst Du Deinen Wert ein, wenn dur die Enter-Taste drrückst sollte der (evtl. nächsthöhere) Standardwert in Edit2 stehen.
Hab ich nicht vollständig getestet......
Gruß, Klaus
Delphi-Quellcode:
const StdWidst:array [0..23] of integer=(10,11,12,13,15,16,18,
20,22,24,27,30,33,36,39,43,47,51,56,62,68,75,82,91);
FUNCTION FindValue(const data:array of integer; value:integer):integer;
var first,last,actual:integer;
begin
first:=Low(data);
last:=High(data);
repeat
actual:=(first+last) shr 1;
result:=data[actual];
if result<value then first:=actual+1
else if result>value then last:=actual-1
else exit;
until first>last;
if first<=High(data) then result:=data[first];
end;
procedure TMain.Edit1KeyPress(Sender: TObject; var Key: Char);
var v:extended; vc:integer;
begin
if key=#13 then begin
val(edit1.Text,v,vc);
edit2.text:=IntToStr(FindValue(StdWidst,ceil(v)));
end else begin
edit2.text:='';
end;
end;
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
|
|
Zitat
|