Hallo, tut mir leid wegen Titel, mir fiel kein besserer ein.
Hier ein für mich noch nicht erklärbares Phänomen.
Ich lasse 500tausend mal was machen um Zeit zu messen wie lange es braucht.
Nachdem ich festgestellt habe das STR langsamer ist habe ich in der Funktion alles deaktiviert.
Programm ausführen lassen und mich wundert das Ergebniss (siehe Bild).
Wie kann etwas das nichts macht mehr Zeit kosten als etwas das was macht?
Delphi-Quellcode:
function EuroToCt (const Euro: Extended) : Int64;
var
tmp : String;
begin
// Str(euro*100:8:0,tmp);
// Result := StrToInt(tmp);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
Ticks1, Ticks2 : UInt64;
c: Int64;
a: Double;
begin
a := 1.71;
Memo1.Clear;
Ticks1 := GetTicks;
for I := 0 to 500000 do c := Round(a*100);
Ticks1 := GetTicks - Ticks1;
Ticks2 := GetTicks;
for I := 0 to 500000 do c := EuroToCt(a);
Ticks2 := GetTicks - Ticks2;
Memo1.Lines.Add(IntToStr(Ticks1)+' ROUND');
Memo1.Lines.Add(IntToStr(Ticks2)+' STR');
end;