 The book talks about the float and 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 to integers, which are whole numbers. As to the origin of the term, a bit of history. Back in the old days, when computers were primarily used in the business world, common business-oriented programming languages would let you specify that a value had a fixed number of decimal places to the right of the decimal point. A fixed decimal to value would always be represented with exactly two decimal places, no more, no fewer. The business world was 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 one place. It has to float according to the demands of the calculation. And that's where the term floating point comes from. In Java, the float data type specifically means a representation that takes up 32 bits, can represent numbers from the range 10 to the minus 38 to 3 times 10 to the 38, and has 6 to 9 digits of accuracy. However, that's not a large enough range or precision for some scientific calculation. So there's another data type called double, which uses twice the space, 64 bits, and gives you a phenomenally greater range on almost twice the precision. In fact, double is often called double precision for that very reason. In Java implementations, the default for values is a 64-bit double. A 14.52 would, by default, be 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.