I'm using a IRR function in javascript to create calculation a that is done in excel using its own IRR function. The problem is mine is little off and I have no idea why. Here's the code below.

var IRRval = [];

IRRval.push(-financed);
for (i = 0; i < period; i++) {
    IRRval.push(rental);
}

var IRR = IRRCalc(IRRval, 0.001) * 0.01;

function IRRCalc(CArray, guest) {
    inc = 0.000001;
    do {
        guest += inc;
        NPV = 0;
        for (var j=0; j < CArray.length; j++) {
            NPV += CArray[j] / Math.pow((1 + guest), j);
        }
    } while (NPV > 0);
    return guest * 100;
}

Now if you use these figures:


Period 24

Financed 22000

Rental 1017.5000

My Result is: 0.008523000000000175

Excel Result is: 0.008522918


OR


Period 42

Financed 218000

Rental 5917.1429

My Result is: 0.006247000000000489

Excel Result is: 0.00624616


The Excel function is called: =IRR(T12:T73,0.01) T12-T73 is the same figures I'm using.

Any help would be much appreciated, Thanks Jason

UPDATE

I've solved it by changing the values below. But now the performance is too slow. Any ideas on how to improve this?

IRRCalc(IRRval, 0.001)

//to

IRRCalc(IRRval, 0.0001)

inc = 0.000001;

//to

inc = 0.00000001;
Edit
Report