> but it'll bite you incredibly hard if you ever stumble upon an edge case such as working with a partner that has a different implied number of digits for a given currency
Why would that be a problem? You just transform the values when interacting with their API.
Customer was charged $0.995 after fees, how to represent in your data model with integer cents?
Exactly, model is in integers and representation can be 1⃣3⃣ or whatever, that's why model-view separation exist.
Sure, but are all your (and your users' and vendors') engineers and LLM agents going to remember that? When in doubt, always be explicit.
Because a lot of the time there won’t be any error when you’re wrong, just silent data loss.