// 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 Win
10

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;





 

 

Zugriffe seit 6.9.2001 auf Delphi-Ecke