Я тут немного пришел в себя и понял эту магическую формулу.
Если кому нужно, вот калькулятор
Number.prototype.toCurrency = function() {
return this.toFixed(2).replace(/(\d)(?=(\d{3})+\b)/g,'$1 ');
};
var payment = function (credit, months, rate) {
rate /= 12 * 100;
return {
get day () {
return this.month / 30.4;
},
get month () {
return credit * rate / (1 - (Math.pow(1 / (1 + rate), months)));
},
get year () {
return this.month * 12;
},
get total () {
return this.year * (months / 12);
},
get over() {
return this.total - credit;
}
};
};
var summ = prompt('Сумма кредита:'),
rate = prompt('Процентная ставка по кредиту:'),
years = prompt('На сколько лет?');
var credit = payment(+summ, years * 12, +rate);
alert([
'Общая сумма выплат: ' + credit.total.toCurrency(),
'Сумма переплаты: ' + credit.over.toCurrency(),
'Сумма выплат в год: ' + credit.year.toCurrency(),
'Сумма выплат в месяц: ' + credit.month.toCurrency(),
'Сумма выплат в день: ' + credit.day.toCurrency()
]
.join('\n'));