Intervalos do tipo de dados de ponto flutuante em C?

Eu estou lendo um livro C, falando sobre intervalos de ponto flutuante, o autor deu a tabela:

Type     Smallest Positive Value  Largest value      Precision
====     =======================  =============      =========
float    1.17549 x 10^-38         3.40282 x 10^38    6 digits
double   2.22507 x 10^-308        1.79769 x 10^308   15 digits

Eu não sei de onde vêm os números nas colunas Menor valor positivo e maior.