From: Nuralanur@... Date: 2006-02-03T04:34:51+09:00 Subject: Re: Work around for "Bignum out of Float range"? -------------------------------1138908868 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Dear Sam, your problem is somewhat insolvable, since the square root of 5 has an infinite number of digits, so it cannot be represented correctly on any computer (in decimal or binary notation). For arbitrary precision calculations with Fixnum exponents, there's bigdecimal. require "bigdecimal" def calc(n,prec) # prec is the precision of the sqrt calculations res=(BigDecimal.new("2") ** n)*BigDecimal("5").sqrt(prec) end puts calc(10000) => 0.44610[several lines of digits]*10^3011 (for prec=10) However, don't believe in too many of these digits... If you still want to multiply by square roots accurately, it might be a good idea to look at continued fractions - every square root has a continued fraction representation that eventually ends in a periodic pattern. There is an introduction to arithmetic with them at _http://www.mcs.surrey.ac.uk/Personal/R.Knott/Fibonacci/cfINTRO.html_ (http://www.mcs.surrey.ac.uk/Personal/R.Knott/Fibonacci/cfINTRO.html) Hope that helps, Axel -------------------------------1138908868--