JSFiddle - React, Tailwind, and code Playground
by blesh
HTML
<script src="https://raw.github.com/dtrebbien/BigDecimal.js/master/build/BigDecimal-all-last.js"></script>
JavaScript
var IRRval = [],
financed = new BigDecimal('22000'),
period = 24,
rental = new BigDecimal('1017.5000');
IRRval.push(-financed);
for ( i = 0; i < period; i++) {
IRRval.push(rental);
}
var x = new BigDecimal('0.01');
var IRR = x.multiply(IRRCalc( IRRval, new BigDecimal('0.001') ));
function IRRCalc(CArray, guest) {
inc = new BigDecimal('0.000001');
do {
guest = guest.add(inc);
NPV = new BigDecimal('0');
var one = new BigDecimal('1');
debugger;
for (var j = new BigDecimal('0'); j.isLessThan(CArray.length); j.add(one)) {
NPV = NPV.add( CArray[j] / guest.add(one).pow(j) );
}
} while(NPV.isGreaterThan(0));
return guest.multiply(100);
}
console.log(IRR);