[Tutor] Need help with rewriting script to use Decimal module
Dick Moores
rdm at rcblue.com
Mon Jan 1 12:59:55 CET 2007
bestFracForMinimumError() is only a small part of a program I wrote
long ago, called frac.py
(<http://www.rcblue.com/Python/fracForWeb.py>). I'm trying to rewrite
it so as to get more precision by using the Decimal module, but am
getting nowhere. Errors all over the place. Can some kind and
knowledgeable soul show me how?
========================================================
import decimal
def d(x):
return decimal.Decimal(str(x))
decimal.getcontext().prec = 40
def bestFracForMinimumError(decimal, minimumError):
denom = 0
while True:
denom += 1
num = round(decimal * denom)
error = abs((num / denom - decimal) / decimal) * 100
if error <= minimumError:
break
return int(num), denom, error
dec = .345765988765560057657654654
me = .0000000001
print bestFracForMinimumError(dec, me)
num, denom, error = bestFracForMinimumError(dec, me)
print "%f = %d/%d with %f per cent error" % (dec, num, denom, error)
=====================================================
Thanks,
Dick Moores
More information about the Tutor
mailing list