flutua menor que FLT_MIN. por que FLT_TRUE_MIN?

Em uma tentativa de ver o que aconteceria no caso de um fluxo insuficiente de flutuação, descobri que era possível tornar os números de flutuação muito menores que FLT_MIN. Estou usando o xcode 5.1 no OS 10.9. O dialeto do idioma é gnu99.

#include <stdio.h>
#include <stdlib.h>
#include <float.h>

int main(int argc, const char * argv[])
{
    float underflow = FLT_MIN * 0.0000004;

    printf("Float min is %f or %e.\nUnderflow is %f or %e\nMin float exp is %d.\n", FLT_MIN, FLT_MIN, underflow, underflow, FLT_MIN_10_EXP);

    return 0;
}

Impressões:
O mínimo de flutuação é 0,000000 ou 1,175494e-38.
O estouro é 0.000000 ou 4.203895e-45
A exp mínima de flutuação é -37.

Existe um método mais eficaz para demonstrar os limites dos tipos de dados?Por que FLT_MIN não é realmente o menor valor de flutuação? Existem outras constantes que devo usar? Depois de digitar a pergunta anterior, encontrei FLT_TRUE_MIN. Qual é esse número?

questionAnswers(3)

yourAnswerToTheQuestion