Programowanie w języku Delphi

RoundTo

  • 2014-12-08 13:46
  • 0 komentarzy
  • 3720 odsłon
  • Oceń ten tekst jako pierwszy
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ż: