Original URL: http://www.theregister.co.uk/2007/09/26/excel_2007_bug/
What's 77.1 x 850? Don't ask Excel 2007
65,535 = the Number of the Beast
A Microsoft manager has confirmed the existence of a serious bug that could give programmers and number crunchers a failing grade when relying on the latest version of Excel to do basic arithmetic.
The flaw presents itself when multiplying two numbers whose product equals 65,535. Fire up your favorite calculator and multiply 850 by 77.1. Through the magic of zeros and ones, you'll quickly get an answer of 65,535. Those using the Excel 2007, however, will be told the total is 100,000. The program similarly fails when multiplying 11 other sets of numbers, including 5.1*12850, 10.2*6425 and 20.4*3212.5, according to this blog post from Microsoft manager David Gainer.
He stressed that the bug, which was introduced when Microsoft made changes to the Excel calculation logic, occurs only in the value Excel displays in a cell. The result stored in memory is correct. "Said another way, 850*77.1 will display an incorrect value, but if you then multiply the result by 2, you will get the correct answer," Gainer wrote.
Of the 9.214*10^18 different floating point numbers that Excel 2007 can store, six of them are susceptible to the flaw.
We're still at a loss as to why the latest and greatest version of Excel would get tripped up on equations totaling 65,535. The number, of course, is the highest that can be represented by an unsigned 16 bit binary number, so people who muck around with computers encounter it on a daily basis. For example, Internet protocol supports 65,535 TCP and UDP ports.
Microsoft engineers are in the final phase of testing a fix. It should be available for download soon, Gainer said. ®