Customer was charged $0.995 after fees, how to represent in your data model with integer cents?

You'll have to decide when and how to round. Keeping individual billing items at high precision and rounding after summing them up can work; defining and documenting a rounding policy (or complying with whatever's legally required in your jurisdiction/domain) and rounding each individual billed item can as well.

Currency: USD Amount: 99500 Decimals: 5

You use 1/1000th or 1/10000th or whatever you need. You do not need “cents”.

Round it up

Charge $0.995

Refund $1.00

Repeat