Round/de

From Lazarus wiki
Jump to navigationJump to search

Deutsch (de) English (en) Esperanto (eo) suomi (fi) русский (ru)

Rundet eine Fliesskommazahl auf eine Ganzzahl.

Round

Deklaration:

function Round(X: Real): Longint;

Beispiel:

Code:

var
  i1, i2: Integer;
begin
  WriteLn( Round(8.7) );
  WriteLn( Round(8.3) );
  // Beispiele für "Banker-Runden" - .5 wird auf die nächste gerade Zahl eingestellt
  WriteLn( Round(2.5) );
  WriteLn( Round(3.5) );

  i := Round(12.50); // Rundet ab
  WriteLn(i);
  i := Round(12.51); // Rundet auf
  WriteLn(i);
end.

Ausgabe:

9
8
2
4
1
13

Banker-Runden

Dank des Banker-Runden ist die Wahrscheinlichkeit für Auf- und Ab- runden bei Zufallszahlen exakt 50:50. Hierdurch zeichnet folgendes Beispiel keine durchgehende Linie, sondern eine Gepunktete.

Code:

var
  i: integer;
  x: single = 0.5;
begin
  for i := 0 to 99 do begin
    Canvas.Pixels[round(x), 20]:= $00;
    WriteLn('Input:', x: 6: 2, ' round: ', Round(x): 4);
    x := x + 1.0;
  end;
end;

Als Alternative Trunc verwenden.

Ausgabe:

Input:    0.50 round:    0
Input:    1.50 round:    2
Input:    2.50 round:    2
Input:    3.50 round:    4
Input:    4.50 round:    4
....


See also: