# Performance/Floating point

From HaskellWiki

## Don't use `Float`

`Floats` (probably 32-bits) are almost always a bad idea, anyway, unless you Really Know What You Are Doing. Use `Double`s. There's rarely a speed disadvantage—modern machines will use the same floating-point unit for both. With `Double`s, 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 `Float`s. 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 `Float`s might take up less space than boxed `Double`s if you are on a 32-bit machine (on a 64-bit machine, a `Float` still takes up 64 bits).