Consider the analogy with exponent notation.
Suppose you are allowed 4 significant digits, so the number 1234000.0
will be represented by 1.234e6
.
Now try adding 0.5
which should be 1234000.5
.
Even if the intermediate buffer is big enough to hold that significance, its representation within the proscribed limit is still 1.234e6
.
But if the intermediate buffer can hold, say, only 7 digits, the aligned values to add are
1234000
0
-------
1234000
so the 0.5
loses its significance even before the addition is performed. In the case of double
you can be quite sure the intermediate buffer cannot hold 308 digits equivalent.