Big Java | Brief Java |

7th Edition | 9th Edition |

- Section 4.2
- At the end of the section, there should be:
**Common Error 4.3 Roundoff Errors**Roundoff errors are a fact of life when calculating with floating-point numbers. You probably have encountered that phenomenon yourself with manual calculations. If you calculate 1 ⁄ 3 to two decimal places, you get 0.33. Multiplying again by 3, you obtain 0.99, not 1.00.

In the processor hardware, numbers are represented in the binary number system, using only digits 0 and 1. As with decimal numbers, you can get roundoff errors when binary digits are lost. They just may crop up at different places than you might expect.

In the binary system, there is no exact representation for 4.35, just as there is no exact representation for 1 ⁄ 3 in the decimal system. The representation used by the computer is just a little less than 4.35, so 100 times that value is just a little less than 435.

double price = 4.35; double quantity = 100; double total = price * quantity; // Should be 100 * 4.35 = 435 System.out.println(total); // Prints 434.99999999999999

You can deal with roundoff errors by rounding to the nearest integer (see Section 4.2.5) or by displaying a fixed number of digits after the decimal separator (see Section 4.3.2).

- Section 4.2.5 Self Check 6
- The solution to the fourth row should refer to Common Error 4.3 (see above).
- Exercise P11.6
- Append: “This file uses the UTF-8 encoding—see Special Topic 11.3.”
- Section 15.2.3
- In Table 3, rows 2 to 4 should be as follows:
iter.hasNext()

Returns `false`

because the iterator is at the end of the collection.if (iter.hasPrevious()) { s = iter.previous(); }

`hasPrevious`

returns`true`

because the iterator is not at the beginning of the list. The call to`previous`

returns`"Sally"`

, and the iterator is again at the beginning of the list.`previous`

and`hasPrevious`

are`ListIterator`

methods.iter.set("Juliet");

The `set`

method updates the last element returned by`next`

or`previous`

, without changing the iterator position. The list is now`[Juliet]`

. - Section 14.6.2
- Change the last equation from
`T`(`n`) = 1 + log_{2}(`n`) to`T`(`n`) =`T`(1) + log_{2}(`n`) - Section 23.3 WebGet.java
- Change
`\n`

to`\r\n`

(3x)

Thanks to Claire Bono, Cindy Johnson, Larry Morelli, Barry Nichols, and (your name might go here) for their bug reports and suggestions.

Please use this form to report any bugs that you find. Please check the list of known bugs first before you report a bug. Unfortunately, I do not have the time to respond personally to every report, but I do read them all and will post updates to this page. Thank you!