RoundTo
Riddle
RoundTo
Moduł: Math
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ż: