That is typically how you handle it (in my limited understanding). If you're going to make an error, let it be in the presentation layer and not the actual math.
Warning: I don't program applications for finance. However... I'm not sure that representing things in cents works. Mostly because of exchange rates. These can have quite a bit of decimals and go beyond cent-precision.
I now wonder if that is what c# does under the hood for currency type which is a rather safe way of dealing with a limited number of decimal places for money. Hm.
My money's on BigIntegers: https://msdn.microsoft.com/en-us/library/system.numerics.big..., using some sort of subdivision of cents as the base unit (1/1000ths of cents?)
I'm probably horribly wrong and I hope someone who actually knows what he's saying corrects me :)