If your system is slow, you lose money. If your trading system says you earned $1,523,374.54, but your accounting system says you only earned $1,523,374.26, you don't care much.
int price = getPrice(symbol);
double signal = exp(...) * ((double)price);
if (signal > threshold) {
buy(symbol);
}
The point is to avoid converting from int to double every single time you need to do a calculation.Of course, one might argue that the programmer using integers should be aware of this, and code accordingly, or else he shouldn't be writing code dealing with money (or any other thing were failure can have serious consequences).
However, the same applies to floating point. Floating point is not magic. A programmer who understands it can safely use it.
Many programmers seem to get burned early in their careers by using floating point without understanding how it differs from real numbers. Then, like the dog concluding that the horse, rather than the fence, was the problem, these programmers conclude that it is not safe to use floating point instead of properly concluding that they should not use tools they don't understand.