Dick Moores wrote: > At 05:20 AM 9/18/2006, Kent Johnson wrote: > > >> You have greatly underused Decimal - it is capable of multiplication and >> division of fractional quantities directly: >> >> In [1]: from decimal import Decimal as D >> >> In [2]: x=D('1.23') >> >> In [3]: y=D('4.5') >> >> In [4]: x*y >> Out[4]: Decimal("5.535") >> >> In [5]: x/y >> Out[5]: Decimal("0.2733333333333333333333333333") >> > > And sqrt() as well, which I definitely thought was not possible. > <http://www.python.org/dev/doc/maint24/lib/node178.html> > > Well, you settled that. I don't know why I didn't see it. > Perhaps you had some preconceptions about the limits of the Decimal module, and upon preliminary investigations something confirmed this for you, so you didn't actually look in-depth for a way to do what you were trying to do because it seemed at first glance like Decimal wasn't the right tool (maybe you saw an example that didn't fully utilize Decimal or something.) Or, alternatively, you cheated and skimmed over the docs, and didn't see something important the first time around :) > >>> of course couldn't rely on the use of the built-in round() or the >>> formatting of strings (see the line "format = "%." + str(precision) + >>> 'f'" in setPrecision() in v3). Lack of experience with the slicing >>> of lists caused many headaches. I didn't succeed in debugging until I >>> put in print statements wherever a value changes, and trying many >>> different integer strings and places (the arguments of >>> roundNumber()). A good lesson, I think. >>> >> The recipes page in the docs for Decimal include a moneyfmt() function >> that rounds to a specified number of places and inserts a separator char. >> > > I'd seen the recipes in the docs, but couldn't make much sense out of > them. I think I can now. Or at least more sense than before. > <http://docs.python.org/lib/decimal-recipes.html> > Yes, even though a portion of your program has functionality in the Decimal module already, coding anything is good practice. For example, my dream is to one day write a NES emulator in Python, and this has already been done dozens of times in C, C++, Java, even Visual Basic. I don't care, my goal is the same whether or not I'm reinventing the wheel. :) I know of no NES emulator in Python, though, so I guess i'm not really reinventing the wheel after all (if anyone asks, tell them I'm porting that Java emulator :) > Thanks, Kent. > > Dick > > Have a good day! I have to get my butt to class now. 4 minutes! eek. -Luke
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor