Proposal for modifying gnucash to use exact quantities

Richard Wackerbarth rkw@dataplex.net
Wed, 2 Aug 2000 06:53:18 -0500


On Tue, 01 Aug 2000, Christopher Browne wrote:

> > Placing this unification code inside the addition code is a computational
> > burden on EVERY addition, even the vast majority (if not all) of the
> > additions which are performed on ammounts from the same account that are
> > already in the same representation and need no coersion.
>
> I disagree fairly strongly; the problem with this unification has
> _nothing_ to do with computational burden, but lies in the fact that the
> only way it is _sensible_ to add two amounts is if they are denominated
> in the _same commodity_.
>
> For instance, you _can't_ add an amount in $USD to an amount in $CDN;
> this has _nothing_ to do with whether or not this addition will be
> computationally expensive, but rather to do with the fact that the
> result _doesn't make sense_.  $25 USD + $35 CDN does not represent a
> valid single value.

Here, I think the question degenerates into "What is a commodity?"

You and I view "$/8 USD" and "$/100 USD" as two different commodities. OTOH, 
I believes that Bill views them as the same commodity and feels that it is 
permissible to add them. I don't think that anyone proposes to add $USD to 
$CND.

In reality, I guess the difference in thought is that Bill proposes to allow 
addition of rational amounts with the result converted to some particular 
quantification and you and I would require that the amounts be converted to 
the quantification units before the addition.

I argue that the latter is the way that commerce is conducted.
Each sub transaction is converted into the monetary units in which the 
transaction is to be conducted and the resulting moneys are added.

Thus, if I purchase 1/5 carload of widgets and 1/4 carload of widgets at 
$1999.95 per carload, the transaction will be computed as:

1/5 carload             $399.99
1/4 carload             $499.99
                        _______
Total                   $899.98

rather than

1/5 carload + 1/4 carload = 9/20 carload
9/20 carload            $899.98