danke marabu, werde mir das mal genauer anschauen. was mir gleich auffällt, ist die Verwendung von Integers statt floats (welches sicherlich schneller geht). Ich werde daher auch floats verwenden (=100er Dekade).
Gibt es eine Möglichkeit einen Wert schneller auf diese dekade zu kommen als so in der Art (ungetested):
Delphi-Quellcode:
function tohundreddecade(value:double;
var dir:integer):integer;
var
ftmp:double;
itmp:integer;
begin
//direction zur rückrechnung in ursprünglichen Wert
//result ist natürlich der dekadenwert
//itmp ist die temporäre integer-var;ftmp die für floats
dir:=0;
result:=0;
ftmp:=value;
if value <100
then
begin
while ftmp<100
do
begin
ftmp:=ftmp*10;
inc(dir);
end;
end else if value>999
then
begin
itmp:=trunc(ftmp);
while ftmp>999
do
begin
itmp:=itmp
div 10;
dec(dir);
end;
result:=itmp;
end;
if result=0
then
result:=trunc(ftmp);
end;
Gruß Frank