// Unter Delphi
gibt es in mehreren Versionen einen Rundungsfehler.
// Das kann man beheben, indem man die unten aufgeführte Funktion
// "Round"
an den Anfang des Quelltextes schreibt.
// Getestet mit CE unter
Win10
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
i := Round(19.5);
showmessage(inttostr(i)); // ergibt 20 , aufgerundet
i := Round(7.5);
showmessage(inttostr(i)); // ergibt 8 , aufgerundet
// aber
i := Round(10.5);
showmessage(inttostr(i)); // ergibt 10 , abgerundet
end;
function Round(D: Double): Integer;
begin
Result := Trunc(D) + ord(Frac(D) >= 0.5);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i: Integer;
begin
i := Round(19.5);
showmessage(inttostr(i)); // ergibt 20 , aufgerundet
i := Round(7.5);
showmessage(inttostr(i)); // ergibt 8 , aufgerundet
// hier jetzt
i := Round(10.5);
showmessage(inttostr(i)); // ergibt 11 , aufgerundet
end;
|