Rate(PeriodCount: Integer;
PeriodPayment: Double;
PresentValue: Double;
FutureValue: Double;
Type: Integer;
Guess: Double): Double;
Rate(PeriodCount: integer;
PeriodPayment: double;
PresentValue: double;
FutureValue: double;
Type: integer;
Guess: double): double;
| Параметры | Описание | Ограничения |
| PeriodCount | Общее число периодов платежей по аннуитету. | Должен быть положительным. |
| PeriodPayment | Выплата, производимая в каждый период; это значение не может меняться в течение всего периода выплат. | Должен отличаться по знаку от PresentValue. |
| PresentValue | Приведенная стоимость или общая сумма, которая на текущий момент равноценна ряду будущих платежей. | Должен отличаться по знаку от PeriodPayment. |
| FutureValue | Значение будущей стоимости, т. е. желаемого остатка средств после последней выплаты. | |
| Type | Выбор времени платежа:
0 - В конце периода; 1 - В начале периода. |
Должен принимать значения 0 или 1. |
| Guess | Предполагаемая величина ставки. |
Метод Rate возвращает процентную ставку по аннуитету за один период.
Rate вычисляется путем сходящегося итерационного процесса, поэтому если последовательные результаты функции Rate не сходятся с точностью 0,0000001, то Rate возвращает сообщение об ошибке.
Если функция Rate не сходится, попробуйте изменить значение параметра Guess. Функция Rate обычно сходится, если значение этого параметра находится между 0 и 1.
Для выполнения примера добавьте ссылку на системную сборку MathFin.
Sub UserProc;
Var
r: String;
Begin
r := CultureInfo.Current.FormatDoublePrec(Finance.Rate(48, -200, 8000, 0, 0, 0.01), 2);
Debug.WriteLine(r);
End Sub UserProc;
В результате выполнения примера в окно консоли будет выведена процентная ставка, равная «0.01» или 1%.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.MathFin;
Imports Prognoz.Platform.Interop.ForeSystem;
…
Public Shared Sub Main(Params: StartParams);
Var
r: String;
Finance: FinanceClass = New FinanceClass();
CultInf: CultureInfoClass = New CultureInfoClass();
Begin
r := CultInf.Current.FormatDoublePrec(Finance.Rate(48, -200, 8000, 0, 0, 0.01), 2);
System.Diagnostics.Debug.WriteLine(r);
End Sub;
См. также: