why does double rounding 9.46 give 10 but "regular" rounding gives 9?

6.8k Views Asked by At

What's the correct way to round, or estimate, a number to a specified precision?

Starting with wikipedia:

Rounding a number twice in succession to different precisions, with the latter precision being coarser, is not guaranteed to give the same result as rounding once to the final precision except in the case of directed rounding. For instance rounding 9.46 to one decimal gives 9.5, and then 10 when rounding to integer using rounding half to even, but would give 9 when rounded to integer directly.

http://en.wikipedia.org/wiki/Rounding#Double_rounding

That just makes no sense to me. What's the justification for different results? If 9.46 rounds to 9.5 why doesn't it then round to 10?

edit

I didn't ask the question correctly. The question, I think and hope I mean to ask, is why, or how, perhaps, double rounding and regular rounding can give different results (using half to even), and I suppose the answer is that there are different rounding algorithms which give different results.

I was thinking there should be one, correct answer as to what 9.46 rounded to the nearest integer rounds to. Double rounding, apparently, gives ten while "regular" rounding gives 9. Guess it just seems odd or weird to me to not double round.

2

There are 2 best solutions below

1
On BEST ANSWER

Another approach is to think of "rounded numbers" as a different sort of object than real numbers. So $9.5(1\text{dp})$ is not the same as $9.5$, it's not quite a number at all.

On this understanding, the rules for rounding off "rounded numbers" have a hole in them. If $x = 9.4 (1\text{dp})$ then $x = 9 (\text{nearest int.})$. If $x =9.6 (1\text{dp})$ then $x = 10 (\text{nearest int.})$. But if $x = 9.5 (1\text{dp})$, then we can't know whether whatever real number $x$ is would be closer to $9$ or to $10$, so the nearest integer to $x$ is undefined. Double rounding isn't always allowed.

Using set notation, we would define $9.5(1\text{dp}) := \{y \in \mathbb{R}: 9.45 \leq y < 9.55\}$. Conventionally, $\mathbb{R}$ means the set of real, unrounded numbers.

Then in the formula $9.46 = 9.5(1\text{dp})$ the equals sign is actually standing in for set membership $\in$. The rules for arithmetic with "rounded numbers" are just that a formula is true exactly if it would be true for every real number in the set. So sometimes we get undefined results.

For example $2 \times 9.46(2\text{dp}) = 18.9(1\text{dp})$, but $2 \times 9.46(2\text{dp})$ is undefined to 2 d.p., because depending on what the real number chosen from the set was, we might get either $18.92 (2\text{dp})$ or $18.93 (2\text{dp})$. This is why in practical calculations you always need to measure, where possible, to more digits of precision than you need in your answer.

9
On

That's exactly what Wikipedia is saying:

As you note: If you round first to one decimal place, then $9.46$ first rounds to $9.5$. If you round then to the nearest integer, it rounds to $10$.

But if you round $9.46$ directly to the nearest integer, then since $0.46 < 0.5$, $9.46$ rounds to $9$.

The point of the Wikipedia article is to show that rounding successively, first to one decimal place, and then to the nearest integer, can yield different results than rounding directly to the nearest integer, in this case.


Another way to look at why, when rounding directly from $9.46$ to the nearest integer results in $9$, note the following:

The "distance" of $9.46$ from $10$ is $.54$. The "distance" of $9.46$ from $9$ is only $.46$. So $9.46$ is closer to $9$ than it is to $10$. So, when rounding directly to the nearest integer, $9.46$ rounds to $9$.