Thursday, September 27, 2007

Excel Bug

If you have signed a contract to work 850 hours at $77.10 per hour, you may want to send back the Lincoln Navigator.  An Excel 2007 calculation but was discovered this week.  Open Excel and enter the formula =77.1*850 in any cell.  The result will be displayed as 100000, rather than the correct answer 65535.  It turns out there are 12 known floating point numbers near 65,535 and 65,536 which are calculated incorrectly in this fashion.  "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" (bink).  Microsoft is working on a patch and will release it as soon as possible to the normal update cycle.  Older versions of Excel do not display the bug.