[Python-Dev] prePEP: Money data type
Batista, Facundo
FBatista at uniFON.com.ar
Mon Oct 20 16:54:55 EDT 2003
#- Sure, rounding IS best set by function, though you may want more than
#- two (roundForbid to raise exceptions when rounding tries to happen,
#- roundTruncate, etc).
So far, goes 4 different kind:
roundPlain
roundBanker
roundTruncate
roundForbid
#- class Money:
#- round = staticmethod(roundWhateverDefault)
#- precision = someDefaultPrecision
#- def __init__(self, value, precision=None, round=None):
#- self.value = value
#- if precision is not None: self.precision = precision
#- if round is not None: self.round = round
#-
#- then use self.precision and self.round in all further
#- methods -- they'll
#- correctly go to either the INSTANCE attribute, if
#- specifically set, or
#- the CLASS attribute, if no instance attribute is set. A
#- useful part of
#- how Python works, btw.
Wow! This is the difference between a python newbie and a python guru, :)
#- I do NOT think any advanced formatting should be part of the
#- responsibilities
#- of class Money itself. I would focus on correct and
#- complete arithmetic with
#- good handling of exact precision and rounding rules: I
#- contend THAT is the
#- really necessary part.
Triming formatting, adding different types of rounding, and allowing strings
with engineering notation. Maybe is better to build a Decimal class (kind of
FixedPoint) easily subclassable to make a Money one.
More information about the Python-Dev
mailing list