混在はいかんね。floatとdoubleの変換は、一回の加減乗に較べて一桁以上遅い。

で、こんなコードを書いてたり。
#if defined(USE_DOUBLE)
typedef double Float;
#elif defined(USE_FLOAT)
typedef float Float;
#else
#error USE_FLOAT or USE_DOUBLE is needed.
#endif
Float foo = Float(3.14);