Thema: Delphi Delphi & Runden

Einzelnen Beitrag anzeigen

brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#1

Delphi & Runden

  Alt 15. Sep 2009, 14:35
Hallo,
1) Wie kann man in Delphi abstellen, dass bei 2.5 (-> 2) abgerunden wird und bei 3.5 (-> 4) aufgerundet wird?
Bisher mache ich es über eine extra Funktion:

Delphi-Quellcode:
function Round(e: Extended): Extended;
begin
  Result := Trunc(e);
  if Frac(e) >= 0.5 then
    Result := Result + 1;
end;
bzw.

math.SimpleRoundTo(Wert, 0)

kann man den RoundMode nicht auf den von TurboPascal umstellen?

Das 2. Problem tritt dann bei Tabellen auf,
ich habe eine TTable mit einem 5/1 BCD Feld.

Diesem weise ich dem Wert 2.25 zu. Da das Feld nur eine Nachkommastelle hat wird gerunden. Auch hier wird auf 2.2 abgerundet, ich hätte aber gerne 2.3. Das Delphi Format ('%5.1f') liefert wie gewünscht auch den Wert 2.3.
Natürlich könnte ich beim zuweisen ebenfalls selbst runden, dafür sind mit aber zu viele Änderungen nötigt. Wie kann ich dem Delphi ROUND und dem interen ROUND einer TTABLE also immer sagen, dass bei 0.5 aufgerundet wird?
  Mit Zitat antworten Zitat