Java Currency and Money API Wiki
JFire Accounting and JFire Currency Interface for reasons similar to those Stephen outlines below, JFire uses long directly, holding the "minor" amount, formatting it to the necessary representation
MoneyDance API for reasons similar to those Stephen outlines, MoneyDance API long directly, holding the "minor" amount. All formatting or currency exchange is done accordingly.
Joda Money can be referred to as an inspiration for API and design style. it is based on real-world use cases in an e-commerce application for airlines
(must be from a small or US airline, as there is no currency conversion;-) Note from Joda author Stephen Colebourne - my current company wants estimated amounts at high performance, so uses double directly
Grails Currencies uses BigDecimal as internal representation, but API only exposes Number in all Money operations like plus(), minus() or similar.
ICU4J Uses Number for all operations and internal storage in its Money type.
Why not to use BigDecimal for Money
M-Pesa-Mobile Money in Africa
Currency Internationalization (i18n), Multiple Currencies and Foreign Exchange (FX).
Discussion of internationalization of currencies, rounding, grouping and formatting, separators etc]
http://speleotrove.com/decimal/http://sourceforge.net/projects/oquote/ Speaking of Insurance, one of my UK colleagues here at Maersk is co-contributor to this SF project: It has an interesting Currency and CurrencyAmount structure in it, too. Maybe a good inspiration, and given it is aimed at the UK and International Insurance industry, it sounds like a welcome project to get in touch with. Contains specifications for decimal floating point arithmetic-Werner Keil
Karatsuba Algorithm for Fast Big Decimal Multiplication
Eric Evans Time and Money Library