Also remember that floating point representation is also not a precise thing. When you insert 1.0 or any other floating point number into a database float / double field, insert another one and then do a compare you might not even get true. I had to completely rewrite an accounting system because of this and change everything to pennies and divide by 100 on display.
But the manual does warn against using floating point maths for currency, or where true accuracy is needed. It sounds odd at first, but if you can put everything into an INT or DECIMAL type then do that instead.