For JSON serialization, which doesn't support fixed-point precision it does.
Floating-point precision has too many gotchas for being suitable to store Decimal types, especially for the Currency use case.
Surely it does:
{ "price": { "amount": 1000, "decimal_places": 2, "currency": "USD" } }
Surely it does: