Re: Money data type in PostgreSQL?

From: Graham Leggett <minfrin(at)sharp(dot)fm>
To: Christopher Browne <cbbrowne(at)acm(dot)org>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Money data type in PostgreSQL?
Date: 2003-12-04 21:00:54
Message-ID: 3FCFA086.90300@sharp.fm
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Christopher Browne wrote:

> But to get the pennies right on a $10,000 USD transaction converted
> into GBP (UK Pounds), you need all the official precision that there
> is. And if your calculation is off by 4 cents, some of those
> accounting folk are liable to thrash you mercilessly over it. If you
> get calculations WRONG, they get really uncomfortable, and want to
> know why.

What I have done is store the currency amounts as bigints, at the same
precision defined for the currency (ie cents for dollars, pence for
pounds, etc). This guarantees that you don't get any rounding errors
when storing the figures as a floating point type. When manipulating the
numbers, I use Java BigDecimals, which don't lose any precision either,
and convert back to bigints to store in the database.

YMMV.

Regards,
Graham
--

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Greg Stark 2003-12-04 21:18:38 Re: bug in 7.4
Previous Message btober 2003-12-04 20:59:52 xor for text