1. Ability to format currencies as per the local market convention. For those unfamiliar with this take a look at something like Region and Language -> Customize Format in Windows 7 for the complete list of number grouping conventions that can be used for monetary values. The new Money type should have the ability to format itself to the standard convention for the Currency or a user specified format.
2. Ability to convert Money value to a String representation (i.e. “Five hundred dollars and fifty three cents” – useful when producing statements and printing cheques in financial applications.
Currencies shall store their symbols and symbol placement convention. For example:
Should be able to format itself as:
“Five hundred and forty one pounds fifty three pence”
But also as:
Put another way currency should also hold its currency symbols, placement rules (many currencies use suffix notation) and probably the natural names for the currency components, so “pounds” and “pence” in the example above.
3. Ability to apply currency rounding and precision conventions (not all currencies and markets use the round up on >=5 and round down <5 convention that we’re used to in the UK and US). These are typically defined as a market convention for a given currency.
4. I’d like us to at least discuss some simplistic support for non-decimal currencies – many financial products are still quoted using fractional prices (as well as decimal) so it would at least make sense for us to be able to represent such prices as naturally as possible.