On Dec 11, 8:16 am, Anh Hai Trinh <anh.hai.tr...@gmail.com> wrote: > I'm just curious which formula for pi is given here: <http:// > docs.python.org/library/decimal.html#recipes>? > > def pi(): > """Compute Pi to the current precision. > > >>> print pi() > 3.141592653589793238462643383 > > """ > getcontext().prec += 2 # extra digits for intermediate steps > three = Decimal(3) # substitute "three=3.0" for regular > floats > lasts, t, s, n, na, d, da = 0, three, 3, 1, 0, 0, 24 > while s != lasts: > lasts = s > n, na = n+na, na+8 > d, da = d+da, da+32 > t = (t * n) / d > s += t > getcontext().prec -= 2 > return +s # unary plus applies the new precision
And just for fun, here's a one-liner (well, okay, two lines including the import) that uses Decimal to print the first 28 digits of pi: Python 2.6.4 (r264:75706, Nov 16 2009, 15:42:08) [GCC 4.0.1 (Apple Inc. build 5490)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> from decimal import Decimal as D >>> print reduce(lambda x,k:2+k/2*x/k,range(999,1,-2),D()) 3.141592653589793238462643383 -- Mark -- http://mail.python.org/mailman/listinfo/python-list