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