Entwickler-Ecke

Sonstiges - ...auf beliebige Anzahl von Stellen kaufmännisches Runden


LCS - Mi 16.10.02 10:29
Titel: ...auf beliebige Anzahl von Stellen kaufmännisches Runden
Mit der folgenden Funktion können Gleitkommawerte auf eine beliebige Stellenzahl nach dem Komma, kaufmännisch gerundet werden.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
function Runden (const Betrag: extended; const Stellen: integer): extended;
var
  Faktor, 
  Wert: extended;
begin
  Faktor := IntPower (10, Stellen);

  if Betrag > 0 then
    Wert := int (Betrag * Faktor + 0.5)
  else
    Wert := int (Betrag * Faktor - 0.5);

  Wert := Wert / Faktor;
  Result   := Wert;
end;

Einige Beispiele:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
x := Runden (19.49492);
// x ergibt 19.49

x := Runden (19.49493);
// x ergibt 19.495

x := Runden (19.49502)
// x ergibt 19.5


Nicht vergessen: Die Funktion benötigt die Unit Math.