Why does money code usually prefer `BigDecimal` over `double`?
Why use BigDecimal over float/double for money?
How do you construct a BigDecimal for currency?