On Sun, 4 Oct 2009, Sam Mason wrote:
>> Withing PG procedures at least in pgsql it is impossible to do 'money'
>> calculations without a loss of precision.
>
> The point is that on *any* computer it's impossible to perform arbitrary
> calculations to infinite precision (i.e. "without a loss of precision as
> you put it).
I've not followed this tread, but read this one message, so perhaps my
comments are not appropriate. In that case, I apologize for jumping in.
Monetary values have always been an issue with computers. For a while, at
least in the mainframe world of decades ago, binary-coded decimals (BCD)
were a working approach.
In the early and mid-1980s we used a procedure for business applications
involving money that worked regardless of programming language or platform.
To each (float, real) monetary amount we added 0.005 and truncated the result
to two digits on the right of the decimal point. In almost all cases, this
allowed financial calculations to be correct to the nearest penny.
Financial calculations are still imperfect. Now and then I see this in
both my business and personal bank statements when reconciliation is off by
a penny or two. The transaction amounts (debits and credits) match, but the
bank comes out with a different total than do I. This is usually only for a
month or two before we are once again in agreement.
Rich