It using a calculation of % interest which using logarithms to calculate the principle payment/total interest and how long it will take to pay off the loan given a borrow amount and a monthly payment amount

``````//FORMULA FOR CALUCLATING INTEREST RATE
//p = x*(1 - (1+r)^-n)/r

var interest = 15, rate = interest/100, principal = 1000, payment = 100, noofpay = 12;

var nper1 = Math.log((1-((principal/payment) * (rate/noofpay))));
var nper2 = Math.log((1+(rate/noofpay)));
nper = -(nper1/nper2);
interestpaid=payment*nper-principal;
nper = -Math.round((nper1/nper2));
nyear=Math.floor(nper/12);
nmonth=nper%12;
if (nper>0)
{
if (nmonth==0)
{
period=nyear+" Year(s)";
}
else
{
period=nyear+" Year(s) and "+nmonth+" Month(s)";
}
}
else
{
period="Invalid Values";
interestpaid=0;
}

console.log("Montly Payments: " + period + ", Total Interest Paid: " + interestpaid.toFixed(2));``````

Into a function with parameters passed in:

``````//the price calculation formula
//@return the price and length of time
function calculate(interest, principal, payment)
{
//get data
var calcElem = \$('#calc');

//FORMULA FOR CALUCLATING INTEREST RATE
//p = x*(1 - (1+r)^-n)/r

var rate = interest/100, noofpay = 12;

var nper1 = Math.log((1-((principal/payment) * (rate/noofpay))));
var nper2 = Math.log((1+(rate/noofpay)));
nper = -(nper1/nper2);
interestpaid=payment*nper-principal;
nper = -Math.round((nper1/nper2));
nyear=Math.floor(nper/12);
nmonth=nper%12;
if (nper>0)
{
if (nmonth==0)
{
period=nyear+" Year(s)";
}
else
{
period=nyear+" Year(s) and "+nmonth+" Month(s)";
}
}
else
{
period="Invalid Values";
interestpaid=0;
}

//console.log("Montly Payments: " + period + ", Total Interest Paid: " + interestpaid.toFixed(2));

var priceData = {
price : '\$'+this.formatCurrency(interestpaid+owe),
interest : '\$'+this.formatCurrency(interestpaid),
time  : period
}
return priceData;
}``````

## Free Guide:

### How to Choose the Right Charting Library for Your Application

How do you make sure that the charting library you choose has everything you need? Sign up to receive this detailed guide from FusionCharts, which explores all the factors you need to consider before making the decision.

• AmirHossein Ma

Thanks , nice :)

• Daniel Sam

where’s the demo?

### Recommended for you

Special Offer
Free course!

Git into it! Bonus course Introduction to Git is yours when you take up a free 14 day SitePoint Premium trial.