|Haskell Performance Resource|
Don't use Float
Floats (probably 32-bits) are almost always a bad idea, anyway, unless you Really Know What You Are Doing. Use Doubles. There's rarely a speed disadvantage—modern machines will use the same floating-point unit for both. With Doubles, you are much less likely to hang yourself with numerical errors.
One time when Float might be a good idea is if you have a lot of them, say a giant array of Floats. An unboxed array of Float (see Performance:Arrays) takes up half the space in the heap compared to an unboxed array of Double. However, boxed Floats might take up less space than boxed Doubles if you are on a 32-bit machine (on a 64-bit machine, a Float still takes up 64 bits).