Números reales: ¿cómo determinar si se requiere flotación o doble?

Dado un valor real, ¿podemos comprobar si unfloat tipo de datos es suficiente para almacenar el número, o unadouble ¿es requerido?

Sé que la precisión varía de una arquitectura a otra. ¿Existe alguna función C / C ++ para determinar el tipo de datos correcto?