Home » Tipps & Tricks » Mathematik » Arithmetik » Zahl auf x Nachkommastellen runden

Zahl auf x Nachkommastellen runden

Um eine Zahl auf x Nachkommastellen zu runden, gibt es keine extra Funktion. Es ist jedoch nicht weiter schwierig, selbst so etwas zu realisieren: Um eine Zahl z.B. auf 2 Nachkommastellen zu runden, muss sie einfach erst mit 100 multipliziert, dann gerundet und schließlich wieder durch 100 dividiert werden. Das tut auch folgende Funkion. Die Unit Math wird für die Funktion IntPower benötigt, die Potenzen berechnet.

uses Math;

function RundeAufStelle(zahl: double; stellen: integer): double;
var multi: double;
begin
  multi:=IntPower(10, stellen);
  zahl:=round(zahl*multi);
  result:=zahl/multi;
end;

Aufrufbeispiel:Folgendes Beispiel rundet die Zahl 1023.23483 auf 2 Nachkommastellen. In Label1 wird anschließend 1023.23 angezeigt.

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption:=FloatToStr(RundeAufStelle(1023.23483, 2));
end;

Da in in diesem Code die Funktion Round verwendet wird, ist deren Besonderheit zu beachten: Liegt der Nachkommateil genau zwischen zwei Zahlen (x,5), wird immer die gerade Zahl zurückgeliefert. Das entspricht nicht dem aritmethischen Runden.Eine Lösung dafür findet sich unter „Arithmetisch korrekt runden“.

Anzeigen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Fragen und Anregungen können gerne im Forum gepostet werden. Die hierfür vorgesehene Sparte ist Delphi-Treff>>Feedback.