Money data type
Asun Friere
afriere at yahoo.co.uk
Wed Sep 17 21:38:55 EDT 2003
"Batista, Facundo" <FBatista at uniFON.com.ar> wrote in message news:<mailman.1063823424.16083.python-list at python.org>...
> Can't find it.
>
> I mean something like:
>
> >> m1 = Money(decimal=2)
> >> m2 = Money(decimal=2)
> >> m1.value = 3.20
> >> m2.value = 2.15
> >> print m1 + m2
> 5.35
>
> 5.35! Not 5.3500000000000001 neither 5.34999999999999999999.
>
> I think this is not a rare thing, but I can't find it in the standar library
> neither the package index.
>
> Thanks!
>
> . Facundo
If it's merely a matter of representing itself you could do something
blindingly simple like:
class Dollars (float) :
def __repr__ (self) :
return "$%.2f" % self
def __add__ (self, other) :
return Dollars(float.__add__(self, other))
#and so on for the other mathematical operators ...
>>> a = Dollars(125.45)
>>> a
$125.45
>>> a + 25.6667
$151.12
>>>
Note this is _not_ to your spec (ie output includes a currency symbol
and input is simply a float).
More information about the Python-list
mailing list