Under no circumstances should you represent money with inexact types.
Interegers and numerics are exact types. If you declare a numeric(30,10) then you will have a type that can accept a number with up to 20 characters to the left of the decmial point, and 10 to the right. Integer types can be used by declaring everything to be in pennies or tenths of pennies and simply putting a period into the right place on the user side, and removing it on the way in. But numerics were built for this.
Floating points are inexact. You can do things like add 1,000,000,000,000 to your current balance, subtract it back out, and find out your balance is now zero. VERY BAD. Don't use floats for money. Use them for ray tracing, mathmatical models, etc... But never accounting.
Also, I don't think I'd trust MySQL in a default configuration to get math right either. Make sure you've got the switches set so that overflows are detected and throw errors. Better to come in on a monday to a thousand angry voice mails from a failure over the weekend than to find out that for the last 6 months you've been getting the wrong answers and didn't get any errors to let you know.