commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stephen Colebourne <scolebou...@btopenworld.com>
Subject Re: [Proposal] Create a sandbox commons-money component?
Date Sat, 14 Feb 2009 11:07:17 GMT
Julius Davies wrote:
> Why even bother with the "long" version?  I think Money should use
> BigDecimal (or BigInteger... whatever) under the hood exclusively.
> 
> BigDecimal/BigInteger already have special optimizations for when they
> can fit themselves in a long.
> 
> (I would more lean towards BigInteger under the hood, and using it to
> represent 4 decimal points.)

The difference represents different use cases.

Money allows you to represent $19.95, $0.01, $10,000,000,000,000.00 and 
so on. The key point is that it is constrained to have two decimal 
places (or more strictly, the correct number of dp for the currency).

BigMoney (TBD) would allow you to have any value to any size and precision.

Your proposal to always use 4dp would be of no use to a business that 
needs 5dp or more. (I should also note that performance isn't a critical 
factor in choosing a long, it just makes more sense for that use case)

The difference is driven by my take on use cases that many businesses 
would be happy with a simple class and never to have to think about 
fractions. Whereas others (typically bigger) will have strict, and 
differeing, rules on what is valid.

Another use case would be storing values using Money, manipulate and 
calculate using BigMoney and then convert back to Money again for storage.

Stephen

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message