# Exponentiation in a Formula

Discussion in 'Javascript' started by grahamhow424@hotmail.com, Dec 21, 2006.

1. ### Guest

Hi

I am trying to figure out how to duplicate a, financial, calculation
that uses the caret, Exponentiation.

Here's the formula...

A = 0.0755
B = 34
C = 50000
D = 22448

result = ((C-D)*A/12)/(1-(1+A/12)^(-B))+D*A/12

It calculates loan repayments based on interest rate (A), number of
payments (B), total loan amount (C) and a residual amount (D).

This calculation will work when the caret (Exponentiation) is used,
however this is not available in Javascript. So, to get this formula to
work in Javascript some other method needs to be used.

I have found examples of how to do Exponentiation, like this:

/***********************************************************/

function powmod(base,exp,modulus)
{
var accum=1, i=0, basepow2=base;
while ((exp>>i)>0)
{
if(((exp>>i) & 1) == 1){accum = (accum*basepow2) % modulus;};
basepow2 = (basepow2*basepow2) % modulus;
i++;
};
return accum;
}

/***********************************************************/

This function comes from here
http://www.math.umbc.edu/~campbell/N...pt.html#PowMod (some handy stuff
there) but I can't replicate the calculation I have posted using a
function like that.

Anyone know how to do this?

Thanks!

, Dec 21, 2006

2. ### -LostGuest

<> wrote in message
news:...
> Hi
>
> I am trying to figure out how to duplicate a, financial, calculation
> that uses the caret, Exponentiation.
>
> Here's the formula...
>
> A = 0.0755
> B = 34
> C = 50000
> D = 22448
>
> result = ((C-D)*A/12)/(1-(1+A/12)^(-B))+D*A/12

result = ((C-D)*A/12)/(1-Math.pow((1+A/12),(-B)))+D*A/12;

-Lost

-Lost, Dec 22, 2006

3. ### Guest

Hi David

Thanks, I got it now.

The formula I posted previously could translate in JS as...

var A1 = 0.0755;
var B1 = 34;
var C1 = 50000;
var D1 = 22448;

alert(((C1 - D1) * A1 / 12) / (1 - Math.pow((1 + A1 / 12), -B1)) + (D1
* A1 / 12));

Thanks again!

David Golightly wrote:
> The caret operator (^) is the bitwise XOR operator in JavaScript. Use
> Math.pow for exponents:
>
> Math.pow(2,3)
> => 8

, Dec 22, 2006
4. ### -LostGuest

<> wrote in message
news:...
> Hi David
>
> Thanks, I got it now.
>
> The formula I posted previously could translate in JS as...
>
> var A1 = 0.0755;
> var B1 = 34;
> var C1 = 50000;
> var D1 = 22448;
>
> alert(((C1 - D1) * A1 / 12) / (1 - Math.pow((1 + A1 / 12), -B1)) + (D1
> * A1 / 12));

result = ((C-D)*A/12)/(1-Math.pow((1+A/12),(-B)))+D*A/12;

That is the exact same thing I wrote (a few minutes before you posted again).

-Lost

-Lost, Dec 22, 2006
5. ### Guest

Ahhhh -Lost

You nailed it. Unfortunately I sorted it out while you were posting,
wish you posted about 3 mins earlier!

Anyway, thanks a lot, appreciate your input.

-Lost wrote:
> <> wrote in message
> news:...
> > Hi David
> >
> > Thanks, I got it now.
> >
> > The formula I posted previously could translate in JS as...
> >
> > var A1 = 0.0755;
> > var B1 = 34;
> > var C1 = 50000;
> > var D1 = 22448;
> >
> > alert(((C1 - D1) * A1 / 12) / (1 - Math.pow((1 + A1 / 12), -B1)) + (D1
> > * A1 / 12));

>
> result = ((C-D)*A/12)/(1-Math.pow((1+A/12),(-B)))+D*A/12;
>
> That is the exact same thing I wrote (a few minutes before you posted again).
>
> -Lost

, Dec 22, 2006
6. ### Dr J R StocktonGuest

In comp.lang.javascript message
<>, Thu, 21 Dec 2006
15:24:20, wrote:
>
>I am trying to figure out how to duplicate a, financial, calculation
>that uses the caret, Exponentiation.

In Javascript, X = Base^Expo is actually bitwise exclusive-or, and
X = Math.pow(Base, Expo) exponentiates. Read any relevant book.

It's a good idea to read the newsgroup and its FAQ. See below.

--
(c) John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v6.05 IE 6
news:comp.lang.javascript FAQ <URL:http://www.jibbering.com/faq/index.html>.
<URL:http://www.merlyn.demon.co.uk/js-index.htm> jscr maths, dates, sources.

Dr J R Stockton, Dec 22, 2006
7. ### -LostGuest

<> wrote in message
news:...

> Ahhhh -Lost
>
> You nailed it. Unfortunately I sorted it out while you were posting,
> wish you posted about 3 mins earlier!
>
> Anyway, thanks a lot, appreciate your input.

Heh. No problem!

-Lost

-Lost, Dec 22, 2006