Question: It's clear that one shouldn't use floating precision when working with, say, monetary amounts since the variation in precision leads to inaccuracies when doing calculations with that amount.

That said, what are use cases when that is acceptable? And, what are the general principles one should have in mind when deciding?

Answer: 
Floating point numbers should be used for what they were designed for: computations where what you want is a fixed *precision*, and you only care that your answer is accurate to within a certain tolerance. If you need an exact answer in all cases, you're best using something else.

Here are three domains where you might use floating point:

1. **Scientific Simulations**  

Science apps require a lot of number crunching, and often use sophisticated numerical methods to solve systems of differential equations. You're typically talking double-precision floating point here.
2. **Games**  

Think of games as a simulation where it's ok to cheat. If the physics is "good enough" to seem real then it's ok for games, and you can make up in user experience what you're missing in terms of accuracy. Games usually use single-precision floating point.
3. **Stats**  

Like science apps, statistical methods need a lot of floating point. A lot of the numerical methods are the same; the application domain is just different. You find a lot of statistics and monte carlo simulations in financial applications and in any field where you're analyzing a lot of survey data.

Floating point isn't trivial, and for most business applications you really don't need to know all these subtleties. You're fine just knowing that you can't represent some decimal numbers exactly in floating point, and that you should be sure to use some decimal type for prices and things like that.

If you really want to get into the details and understand all the tradeoffs and pitfalls, check out the classic [What Every Programmer Should Know About Floating Point](http://docs.sun.com/source/806-3568/ncg_goldberg.html), or pick up a book on [Numerical Analysis](http://en.wikipedia.org/wiki/Numerical_analysis) or [Applied Numerical Linear Algebra](http://books.google.com/books?id=bj-Lu6zjWbEC&dq=applied+numerical+linear+algebra&printsec=frontcover&source=bl&ots=5F5fVNdfwX&sig=Z9FiPDHVocrwrJZNkoQ9rh8ow70&hl=en&ei=LXvaSc6bC42qtAPW5vDXBg&sa=X&oi=book_result&ct=result&resnum=8) if you're really adventurous.
It's appropriate to use floating point types when dealing with scientific or statistical calculations. These will invariably only have, say, 3-8 significant digits of accuracy.

As to whether to use single or double precision floating point types, this depends on your need for accuracy and how many significant digits you need. Typically though people just end up using doubles unless they have a good reason not to.

For example if you measure distance or weight or any physical quantity like that the number you come up with isn't exact: it has a certain number of significant digits based on the accuracy of your instruments and your measurements.

For calculations involving anything like this, floating point numbers are appropriate.

Also, if you're dealing with irrational numbers floating point types are appropriate (and really your only choice) eg linear algebra where you deal with square roots a lot.

Money is different because you typically need to be exact and every digit is significant.