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
--


---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Reply via email to