RoundDUp(Value: Decimal; Precision: Integer): Decimal;
RoundDUp(Value: decimal; Precision: integer): decimal;
Value. Округляемое десятичное число большой точности;
Precision. Количество дробных разрядов, до которого требуется округлить число.
Метод RoundDUp возвращает результат округления десятичного числа большой точности до ближайшего большего по модулю значения.
Для обозначения в массиве чисел типа Decimal после значения каждого числа необходимо дописать символ «m». Например: 0.001m.
Если количество дробных разрядов больше 0, то число округляется с избытком до заданного количества десятичных разрядов после десятичной запятой.
Если количество дробных разрядов равно 0, то число округляется до ближайшего целого.
Если количество дробных разрядов меньше 0, то число округляется с избытком, с учетом десятичных разрядов слева от десятичной запятой.
Метод RoundDUp подобен методу IMath.RoundD, за тем исключением, что округление всегда производится с избытком.
Для выполнения примера добавьте ссылку на системную сборку MathFin.
Sub UserProc;
Var
r1, r2, r3, r4: Decimal;
Begin
r1 := Math.RoundDUp(2.154956124m,1);
Debug.WriteLine(r1);
r2 := Math.RoundDUp(-50.654m,-2);
Debug.WriteLine(r2);
r3 := Math.RoundDUp(21.5m,-1);
Debug.WriteLine(r3);
r4 := Math.RoundDUp(-1.475m,2);
Debug.WriteLine(r4);
End Sub UserProc;
В результате выполнения примера в окно консоли будут выведены результаты округления:
Число и количество разрядов положительны: «2.2»;
Число и количество разрядов отрицательны: «-100»;
Число положительно, а количество разрядов отрицательно: «30»;
Число отрицательно, а количество разрядов положительно: «-1.48».
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.MathFin;
…
Public Shared Sub Main(Params: StartParams);
Var
r1, r2, r3, r4: Decimal;
Math: MathClass = New MathClass();
Begin
r1 := Math.RoundDUp(2.154956124m,1);
System.Diagnostics.Debug.WriteLine(r1);
r2 := Math.RoundDUp(-50.654m,-2);
System.Diagnostics.Debug.WriteLine(r2);
r3 := Math.RoundDUp(21.5m,-1);
System.Diagnostics.Debug.WriteLine(r3);
r4 := Math.RoundDUp(-1.475m,2);
System.Diagnostics.Debug.WriteLine(r4);
End Sub;
См. также: