From: Stefano Crocco Date: 2007-03-30T18:53:20+09:00 Subject: Re: Ruby math.pow equivalent Alle venerd狸 30 marzo 2007, John Butler ha scritto: > Drew Olson wrote: > > John Butler wrote: > >> Hi, > >> > >> I am trying to calculate a monthly payment for a loan in Ruby. Does > >> anyone know what the equivalent for math.pow in Java is for Ruby? > >> > >> @monthlypayment = @principal*@rate/(1-Math.pow(1/(1+@rate),@payments)) > >> > >> Ive searched everywhere and cant seem to find anything. > >> > >> thanks > >> > >> Johnny B > > > > I think this is what you're looking for: > > > > irb(main):001:0> 2 ** 1 > > => 2 > > irb(main):002:0> 2 ** 2 > > => 4 > > irb(main):003:0> 2 ** 3 > > => 8 > > irb(main):004:0> 2 ** 4 > > => 16 > > Yes this is what i am looking for. How do i then use it to calculate > amonthly payment, i have tried quite a few things but cant get the > syntax right: @monthlypayment = > @principal*@rate/(1-**(1/(1+@rate),@payments)) > > > So for the example below: > > Suppose you finance your car with a loan of $12000 at a yearly interest > rate of 11% for four years, and make equal payments monthly. How much > will your payments have to be? Here the parameters are principal P = > $12000, interest rate i = 0.11, number of years n = 4, and number of > periods per year q = 12. Then the monthly car payment M is given by > > M = Pi/[q(1-[1+(i/q)]-nq)], > = ($12000)(0.11)/[(12)(1-[1+(0.11/12)]-(4)(12))], > = $110/(1-1.009166666...-48), > = $310.15. > > > Anyone done this before? ** is an operator, just like + or *; it's used this way: base**exponent. In your case, you should write: @principal*@rate/(1-1/(1+@rate)**@payments) I hope this helps Stefano