Я новичок, пытающийся создать небольшую программу на Java, которая позволяет пользователю вводить срок кредита, процентную ставку и т. Д. И, я надеюсь, выложит оценку ежемесячных выплат.Однако, когда я делаю это, это дает мне совершенно другое число, чем то, что я вычислил вручную.
Мне сказали использовать математическую систему BigDecimal, так как примитивный тип двойных данных недостаточно точен для финансовыхвычисления.
Шаги, которые я делаю, пытаются подражать этой формуле: M = P [i (1 + i) ^ n / 1- (1 + i) ^ n]
BigDecimal iRateInput = BigDecimal.valueOf(iRate);
BigDecimal twelve = new BigDecimal("12");
BigDecimal iRateMonthly = iRateInput.divide(twelve);
BigDecimal one = new BigDecimal ("1");
BigDecimal iRateTemp = iRateMonthly.add(one);
BigDecimal loanTermBD = BigDecimal.valueOf(loanTerm);
loanTermBD = loanTermBD.multiply(twelve);
BigDecimal iRatePower = iRateTemp.pow(loanTerm);
BigDecimal iRateTop = iRateMonthly.multiply(iRatePower);
BigDecimal iRateBottom = iRatePower.subtract(one);
BigDecimal iRateTotal = iRateTop.divide(iRateBottom, BigDecimal.ROUND_UP);
BigDecimal borrowAmountBD = BigDecimal.valueOf(borrowAmount);
BigDecimal repayments = borrowAmountBD.multiply(iRateTotal);
Я тестировал этот код с:
P = 100 000
n = 15 лет (* 12)
r = 0,06p / a
Согласно моим расчетам, ежемесячное погашение должно быть 843,86, но я получаю 6936,43
Помощь будет принята с благодарностью!<3 </p>