Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
Solved

APR calculation help

Posted on 2009-03-28
Medium Priority
293 Views
Hi, I want to calculate APR based on the inputs C, E, R and N.
Here is the math to solve:
http://www.efunda.com/formulae/finance/apr_calculator.cfm

I want to write in my php to calculate the APR.  But, I don't know how to solve this equation.
If not php, atleaset explain in whatever language you know, i can convert it to php.

Any help is appreciated.
Thanks.
0
Question by:CWS (haripriya)
• 4
• 4

LVL 18

Expert Comment

ID: 24011326
Use the following formula

P = (C+E)r((1+r)^N)/((1+r)^N)-1)

The "^" symbol is whatever you programming language uses for raising to a power
0

LVL 16

Author Comment

ID: 24011509
Hi,
Thanks for the quick reply. P is Monthly payment. I want to calculate the APR, for which they have given a formula which should be solved using Newton Raphsons iterative method, that is where  i am stuck.
0

LVL 18

Expert Comment

ID: 24011569
I can't apply the Newton Raphsons iterative method.

Maybe someone else here can help.  I'll stay subscribed.
0

LVL 16

Author Comment

ID: 24011643
ok.
0

LVL 16

Author Comment

ID: 24012688
I solved my problem.
This is the equation I used for Newton - Raphson method.

while ((apr_next>apr+my_range_top)||(apr_next<apr)) {
apr=apr_next;
apr_next=P/loanamount*(Math.pow(1+parseFloat(apr),term)-1)/(Math.pow(1+parseFloat(apr),term));
}

This is not my code. I copied from a website.
Will close the question now.
1

LVL 16

Accepted Solution

CWS (haripriya) earned 0 total points
ID: 24013364
This the Javascript solution that worked for me. For you to work you should use your form variables in the function.
<script language="javascript">
function recalcapr(loantype, loanid)
{
if (document.forms.form1.aprtype.value=='Automatic')
{
if (document.forms.form1['intonly'+loanid].value=='1') var io=true;
else var io=false;
if (loantype=='c')
{
var rate=document.forms.form1['loan'+loanid+'conforming'].value;
document.forms.form1['loan'+loanid+loantype+'apr'].value=calc_apr(document.forms.form1.othercost_con.value, rate, document.forms.form1['loan'+loanid+'term'].value, io, document.forms.form1.loanamt_con.value);

}
else
{
var rate=document.forms.form1['loan'+loanid+'jumbo'].value;
document.forms.form1['loan'+loanid+loantype+'apr'].value=calc_apr(document.forms.form1.othercost_jum.value, rate, document.forms.form1['loan'+loanid+'term'].value, io, document.forms.form1.loanamt_jum.value);
}
}
}

function calc_apr(extracosts, rate,term, io,loanamount){
var apr=0;
var total=parseFloat(loanamount)+parseFloat(extracosts);
var P=calc_payment(total, rate, term, io);
rate=rate/1200;
var apr_next=rate;
var my_range_top=.00000005;
var message='';
var i=0;
//Newton-Raphson method
while ((apr_next>apr+my_range_top)||(apr_next<apr)) {
apr=apr_next;
apr_next=P/loanamount*(Math.pow(1+parseFloat(apr),term)-1)/(Math.pow(1+parseFloat(apr),term));
}
return (apr*1200).toFixed(3);
}

function calc_apr_payment(costs, rate, term, io){
var apr_payment=calc_payment(costs, rate, term);
return apr_payment;
}

function calc_payment(amount, rate, term, io){
r=rate/100/12;
r1=r+1;
t1=Math.pow(r1,term);
payment=t1/(t1-1)*r*amount;
return payment;
}

</script>
0

LVL 18

Expert Comment

ID: 24013431
Okay.  Thanks

We're just waiting for the Community Support Moderator to close the question with points refunded and your posting 24012688 as the accepted solution.
0

LVL 18

Expert Comment

ID: 24014566
fine with me.
0

Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
Many old projects have bad code, but the budget doesn't exist to rewrite the codebase. You can update this code to be safer by introducing contemporary input validation, sanitation, and safer database queries.
The viewer will the learn the benefit of plain text editors and code an HTML5 based template for use in further tutorials.
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…
Suggested Courses
Course of the Month14 days, 10 hours left to enroll