Microsoft: Excel 2007 bug is skin deep

A math problem in Excel 2007 crops up when presenting data, not when processing it, Microsoft says.

A bug in Excel 2007 reported earlier this week may be ugly, but it's only skin deep, Microsoft said late Tuesday.

With the bug, results that should have been shown as 65,535 showed instead as 100,000, and a related problem cropped up with 65,536, Microsoft's David Gainer said in a blog posting. But the problem affected how Excel showed the number, not in what the spreadsheet software actually "knows."

"This is an issue in a function that puts numbers in cells, so the values in Excel's memory are actually correct," Gainer said. "Any calculations based off that cell will be accurate too."

That's still a problem, of course, but it might be comforting to know that it's not as likely to creep outward from one result to the next.

A repair is in testing now. "We've come up with a fix for this issue and are in the final phases of a broad test pass in order to ensure that the fix works and doesn't introduce any additional issues--especially any other calculation issues," Gainer said. "This fix then needs to make its way through our official build lab and onto a download site--which we expect to happen very soon."

He didn't try to downplay the problem, as Intel once famously did with the FDIV calculation bug in some early Pentium processors, but he did indicate it's not widespread. "Of the 9.214*10^18 different floating-point numbers that Excel 2007 can store, there are 6 floating-point numbers (using binary representation) between 65534.99999999995 and 65535, and 6 between 65535.99999999995 and 65536 that cause this problem," Gainer said.

Floating-point numbers are those described with two components--the first between 1 and 10 and the second an exponent of the power of 10. So, for example, 2.6^10*2 is 2.6 * 100, or 260.