+--------+----------+-------------+--------------+--------------+ | C type | sizeof | precision | positive max | positive min | +========+==========+=============+==============+==============+ | float | 4 bytes | 2^(-23) | 2^127 | 2^(-126) | | | 32 bits | 1.192E-7 | 3.403E+38 | 1.175E-38 | +--------+----------+-------------+--------------+--------------+ | double | 8 bytes | 2^(-52) | 2^1024 | 2^(-1022) | | | 64 bits | 2.220E-16 | 1.798E+308 | 2.225E-308 | +--------+----------+-------------+--------------+--------------+ | long | 16 bytes | 2^(-112) | 2^16384 | 2^(-16382) | | double | 128 bits | 1.926E-34 | 1.190E+4932 | 3.362E-4932 | +--------+----------+-------------+--------------+--------------+Following the IEEE 754 standard, a single float is represented by 32 bits: 1 sign bit, 23 bits for the fraction, and 8 bits for the exponent. A double float takes 64 bits: 1 sign bit, 52 bits for the fraction, and 11 bits for the exponent. And then there is the type long double, which takes 128 bits: 1 sign bit, 112 bits for the fraction, and 15 bits for the exponent.
More general and advanced information can be found on the course web pages.
Especially the IEEE 754 standard contains an interesting view on floating-point numbers. It is reprinted in the SIGPLAN Notices, volume 22, number 2, pages 9-25, 1987.