What is the inclusive range of float and double in Java?
Why are you not recommended to use float or double for anything where precision is critical?
Of course you can use floats or doubles for "critical" things ... Many applications do nothing but crunch numbers using these datatypes.
You might have misunderstood some of the various caveats regarding floating-point numbers, such as the recommendation to never compare for exact equality, and so on.