RoundTo

TomRiddle
RoundTo
Moduł: Math
function RoundTo(const AValue: Double; const ADigit: TRoundToRange): Double;

Funkcja RoundTo zaokrągla podaną liczbę rzeczywistą do określonej w drugim parametrze liczby liczb przed przecinkiem i zwraca ją w postaci liczby zmiennoprzecinkowej.

Wywołanie funkcji RoundTo(?, 0); jest równoważne z Round(?);

Przykład:

program Foo;
 
uses
  SysUtils, Math;
 
{$APPTYPE CONSOLE}
 
var
  aNumber: Double;
 
begin
  aNumber := 654.94581;
  WriteLn(RoundTo(aNumber, 3));    // 1000
  WriteLn(RoundTo(aNumber, 2));    // 700
  WriteLn(RoundTo(aNumber, 1));    // 650
  WriteLn(RoundTo(aNumber, 0));    // 655
  WriteLn(RoundTo(aNumber, -1));   // 654.9
  WriteLn(RoundTo(aNumber, -2));   // 654.95
  WriteLn(RoundTo(aNumber, -3));   // 654.946
end;
Drugi parametr jest typu **TRoundToRange** którego zakres wynosi -37..37

Takie wywołanie

RoundTo(aNumber, 38);

da nam błąd Constant expression violates subrange bounds;

ale można zrobić tak

RoundTo(aNumber, TRoundToRange(38));

co jest bez sensu bo delphi nie wspiera takich dużych liczb.

Zobacz też:

0 komentarzy