In all instances that I have seen (I programmed a systematic search a year
or two ago), each number is correctly represented in binary, and that binary
approximation should display to 15 figures identically to the input number,
but for some unaccountable reason the display is off by 1 in the 15 figure.
Using the functions at
http://groups.google.com/group/microsoft.public.excel/msg/b106871cf92f8465
you can verify that the binary representation of your number is
1.1001001011100101001111100001101100001000100110100000B15
whose decimal value is 51570.62129999999888241291046142578125 which to
Excel's display limit of 15 figures is 51570.6213000000. If you increment
the binary representation by 1 in the last bit
1.1001001011100101001111100001101100001000100110100001B15
then its decimal value is 5.15706213000000061583705246448516845703125 which
is farther from 51570.6213 than the representation that Excel used. Hence
Excel is representing the number correctly, but for some unknown reason fails
to display that representation properly.
Given that it appears to be a display issue rather than a numeric issue, and
the display is off by so little, it is more of an annoyance than an accuracy
concern, but it is a surprising that MS has done nothing about it in over a
decade.
Jerry
Just a side note. The .848 bug listed in this article isn't quite
complete.
I believe it applies to all numbers that end with .848 and offset by a
factor of 1/8 (.125) within that same range of 32,768 and 65,535.
For example, .848+.125 = .973.
Numbers like 30000.973 will not display this bug,
but a number like 40000.973 will.
--
HTH. :>)
Dana DeLouis
Windows XP, Office 2003
"Jerry W. Lewis" <post_a_reply@no_e-mail.com> wrote in message
news:9535A177-2B67-403D...@microsoft.com...
The ones I have counted are ones that occur when the integer part of the
number is between 2^15 and 2^16. I do not know if it can happen for decimal
fractions that are displayed correctly when the integer part is in this
range, but I do know that thousands of these decimal fractions are also
mis-displayed with much smaller integer parts (As I recall, I had seen it
with integer parts as small as 2^7=128).
You can easily identify these in VBA, since if x is a Double that is
mis-displayed, then
CStr(x) <> Evaluate(x)
Jerry