Some CPUs actually work faster on doubles. I’d expect this is true in some modern x86 chips, but the only place I’ve heard this definitively is that you are recommended by MS to use doubles over floats on the 360 as it’s faster (and probably true for the PPE in the Cell processor too, which is the core that does all the non-specialist work in the PS3).
You’d be hard pressed to find a big performance difference between float and double on x86. But if you can find a situation where the difference between floats and doubles naturally gives you a big difference in performance (emphasis here on it happening naturally within your program, not through benchmarks), then the algorithm is run so often that it would be better to think up a pure integer alternative.
You’ll probably also find it difficult to find situations in a game where floats are not accurate enough. The main situation I personally run into with doubles vs float is when your mixing very large with very small numbers togethor. In a simplified sense, floats store a number and a location of the decimal point in relation to that number. As a result a very large number will not store small numbers such as decimal values; even adding 1 onto a very large float results in no change to that number. As doubles use more bits for greater accuracy you can mix a larger range of large and small numbers (and so be less likely to run into this issue). However again you’d be hard pressed to find a situation where this actually happens naturally in a game.
So in short, don’t worry about it!
But if you HAVE to pick one based on performance, then pick floats. I once wrote a 32 bit random class which used integers and floats. I then ported it to use longs and doubles. The 64-bit version was MUCH slower, but this was shown using artificial benchmarks which did not represent real world usage (polling for millions of random values in a row, which is rarely performed on each frame).
Otherwise pick whatever the majority of your libraries use. If they mostly take/return floats, then use floats. If they mostly return/take doubles, then pick doubles.