Re: Python interface and Money? - Mailing list pgsql-interfaces

From darcy@druid.net (D'Arcy J.M. Cain)
Subject Re: Python interface and Money?
Date
Msg-id 20011024120444.32D2B1A65@druid.net
Whole thread Raw
In response to Python interface and Money?  (Joel Mc Graw <jmcgraw@databill.com>)
List pgsql-interfaces
Thus spake Joel Mc Graw
> I have a table that has a column of type money.  A query such as "select
> sum(document_amount) from foo" returns the correct result when executed
> from psql, yet the same query returns the wrong answer (it appears to be
> a rounding issue--something like "1234.9999999999...") when executed
> through PygreSQL.  Is there a workaround or a fix?

That sounds like a Python issue.  The correct value is passed to the
Python function as a string since it is always stored and delivered
correctly in the database.  That's sort of the point of the money type.

I have been thinking of creating a money type in Python so that this
won't happen but haven't got around to it yet.  In the meantime you
can always format it with "%.2f" to get the correct value displayed.

> While browsing the mailing list for an answer to this problem I found
> several references to the money type being deprecated.  Is that the
> problem?

They keep saying that DECIMAL should be used instead but they are not
exactly equivalent.  The MONEY type was originally written with locale
support and displays the local currency symbol.

-- 
D'Arcy J.M. Cain <darcy@{druid|vex}.net>   |  Democracy is three wolves
http://www.druid.net/darcy/                |  and a sheep voting on
+1 416 425 1212     (DoD#0082)    (eNTP)   |  what's for dinner.


pgsql-interfaces by date:

Previous
From: Tushar Nerurkar
Date:
Subject: pgadmin for postgresql 7.0
Next
From: Christof Petig
Date:
Subject: ECPG: Automatic Storage allocation for NULL-pointing output variables