Note, double and long double are treated the same as float in the AVR/arduino environment. This means you only have 6 digits or so of precision.
Also note, if you are making very heavy use of floating point, that you might want to consider using another machine that has floating point in hardware. On arduino systems, floating point is all done by emulation routines.