Re: Python interface and Money?
От | Hannu Krosing |
---|---|
Тема | Re: Python interface and Money? |
Дата | |
Msg-id | 3BD6F5B4.40767418@tm.ee обсуждение исходный текст |
Ответ на | Re: Python interface and Money? (darcy@druid.net (D'Arcy J.M. Cain)) |
Список | pgsql-interfaces |
"D'Arcy J.M. Cain" wrote: > > 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. There are pure python BigDecimal and Money types available in the same place as m2crypto: http://www.post1.com/home/ngps/m2/ Last time I checked the license seemed to be compatible. > > 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. This of course will be a real PITA to parse reliably in the adapter ;( -------------- Hannu
В списке pgsql-interfaces по дате отправления: