A family of Microsoft spreadsheet software with tools for analyzing, charting, and communicating data
From Chip Pearson (rip)...
[....]
These are 8-byte variables that can store numbers accurate to approximately 15 decimal places. You may have only two decimal places displayed on the worksheet, but the underlying value has the full 15 decimal places.
Pretty good description, except for that detail. Common sense: if stored numbers were "accurate to 15 decimal places", we shouldn't have any problem with numbers like 12.8 and 13.2.
Okay, Chip did say "approximately" 15 dp, which is better than most descriptions. But the point is: Excel __never__ stores numbers (in memory) with 15 significant digits (*), much less 15 "decimal places" (sic), approximate or otherwise.
Chip should have left it at: The first is that the numbers are not displayed to their full value, and The second problem arises from the fact that [the type Double binary form] cannot [represent] most fractional numbers with total accuracy.
For example, the exact decimal representations of the binary approximations of 12.8 and 13.2 are:
12.8000000000000,00710542735760100185871124267578125
13.1999999999999,99289457264239899814128875732421875
(I use period for the decimal point and comma to demarcate the first 15 significant digits, which is all that Excel formats, rounded.)
(*) In fact, when Excel saves to an "xlsx" or "xlsm" file (any XML file), numbers are represented in text by an approximation with up to 17 significant digits. 17 sig dig is sufficient to convert between decimal and binary representations with no loss of precision, as the IEEE standard specifies. But that is still just an __approximation__. FYI, the IEEE standard __never__ mentions 15 (sic) significant digits, contrary to most descriptions.
Aside.... IMHO, 12.8 and 13.2 should be stored as "12.800000000000001" and "13.199999999999999", which are the correct 17 sig dig representations, rounded. But apparently, when the binary approximation of the number rounded to 15 sig dig and 17 sig dig is the same, Excel sometimes stores the 15 sig dig representation in the XML file, which is "12.8" and "13.2" in this case.
(EDIT) On second thought, I suspect -- wild speculation! -- that the deciding condition is whether the binary approximations are the same for the number in the General format, not rounded to 15 sig dig. For example, the 15 sig dig constant -0.399999999999999 is stored with the 17 sig dig string "-0.39999999999999902", even though they have the same binary approximation. The exact decimal representation is -0.399999999999999,023003738329862244427204132080078125.