¿Debería usar doble o flotante?

¿Cuáles son las ventajas y desventajas de usar uno en lugar del otro en C ++?