 The book talks about the float and the double data types. What are they, and where do those names come from? In general, a floating point number is one that has a decimal, in contrast with integers, or whole numbers. As to the origin of the term, a bit of history. Back in the old days, when people programmed computers for the business world, common business-oriented programming languages let you specify that a value had a fixed number of decimal places to the right of the decimal point. So a fixed decimal to value would always be represented with exactly two decimal places, no more, no fewer. The business world programmers were happy with this. Scientists, not so much. To do scientific calculations accurately requires varying numbers of decimal places. In other words, the decimal point can't be fixed in place. It has to float according to the demands of the calculation. And that's where the term floating point comes from. In C, the float data type specifically means a representation that takes up at least 32 bits and can represent numbers from 10 to the minus 38 to 3 to the 38th power accurate from 6 to 9 digits. However, that's not a large enough range or precision for some scientific calculations. So there's another data type called double, which uses twice the space, at least 64 bits, and gives you a phenomenally greater range and almost twice the precision. In fact, double is often called double precision for that very reason. C has a long double type as well. Depending on the operating system you're using, the number of bytes in a long double varies from 64 bits, where it's the same as double, to 128 bits. A 128-bit long double has 33 to 36 digits of precision. When you write numbers with a decimal point, by default they're double. If you really want the lower precision float, you have to follow the number with the letter F in either upper or lower case. For a long double, follow the number with the letter L, which we recommend that you put in upper case, as a lower case L looks too much like the digit 1. When it comes to printing a float or double value, you have three choices for your formatting character. PercentSignF prints the value as an ordinary number. PercentSignE prints the value in scientific notation, also called exponential notation, and PercentSignG prints the value as either ordinary or exponential, depending on the size of the number. For a long double, precede the formatting character with a capital L. This program shows you the results of using the PercentSignF, PercentSignE, and PercentSignG format specifiers with small, large, and very large values of doubles. And here's the result of running the program.