Не могу реализовать работу цикла. Я сама далека от программировании, но сейчас мне очень важно решать эту задачу для расчета КДН (Коэффициент долговой нагрузки).
Есть минимальный КДН, которое мы и должны отработать цикл до его значение. В коде мне нужно будет найти первоначальный взнос (ПВ) для этого КДН.
Значение down_pmt(ПВ), когда new_kdn= kdn_max?
double down_pmt = #IN_LOAN_DOWN_PMT_PRC.doubleValue();
long down_pmt_amn = 0;
double app_amn = 0;
double rate_month = 0;
double coeff = 0;
double mon_payment = 0;
double award = 0;
double mon_payment_kdn = 0;
double new_kdn = 0;
int kdn_max = 0.5;
for(int i = 0; i == kdn_max; i++) {
if (#FN_AUTO_KDN.doubleValue() > #FN_AUTO_KDN_MAX.intValue() && #FN_AUTO_KDN.doubleValue() > 50 && #FN_AUTO_KDN.doubleValue() <= 90 )
{
down_pmt = down_pmt + 5.0;
down_pmt_amn = (#IN_CAR_PRC.doubleValue() * down_pmt)/100;
app_amn = #IN_CAR_PRC.doubleValue() - down_pmt_amn;
rate_month = #IN_LOAN_RATE.doubleValue()/12;
double loanRate = rate_month;
double loanTerm = #IN_LOAN_TERM.intValue();
double power = 1.0;
for (int j = 0; j < loanTerm; j++) {
power *= (1 + loanRate);
}
double numerator = loanRate * power;
double denominator = power - 1;
coeff = numerator / denominator;
mon_payment = app_amn * coeff;
award = mon_payment * #IN_LOAN_TERM.intValue() - app_amn;
mon_payment_kdn = ( app_amn + award -#IN_CAR_PRC.doubleValue()*0.5)/#IN_LOAN_TERM.intValue();
new_kdn = (#FN_PKB_ACT_CON_PMT_AMN_TTL.doubleValue() + mon_payment_kdn)/ #FN_AUTO_FNL_INC.doubleValue();
}
}
return down_pmt ;