Excel 2007 surprised major bug: 850×77.1=100000

  


There is a major bug in Excel 2007 that incorrectly calculates 850*77.1 as 100000 instead of 65535.

Of course, 850*77.1 is not a special case. I don't believe you can calculate the following multiplications in Excel 2007:

=5.1*12850

=10.2*6425

=20.4*3212.5

=40.8*1606.25

=154.2*425

=212.5*308.4

=308.4*212.5

=425*154.2

The result is 100000?

This BUG was first mentioned in a report on a Microsoft Group Excel-based newsgroup in the Google Group. This question was quickly confirmed by several experts, and Excel MVP Bernad Leingme was the first to stand up.


In fact, the problem appears on the number 65535. Although I still can't finally be sure what the reason is, but considering the particularity of the number 65535 (converted to binary is 11111111111111111, 16-bit unsigned integer can represent the maximum value), initially suspected Excel 2007 in floating-point calculation or There was a mistake in the error. In addition, it can be seen that at least one number in the multiplication formula of the error has one decimal place.

Further, if one of the above multiplications is placed in cell A1, then A1+1 will return 10001, A1*1 will return 100000, and A1/1 will return 100000. These are undoubtedly wrong, because Excel 2007 has already measured the value of A1 as 100000, but the strange thing is that A1*2 returns the correct 131070, A1-1 is also 65534, and A1/2 is accurately obtained. 32767.5. The volatility of Excel 2007 is really hard to remember.


The test also showed that the old version of Office 2000/XP/2003 does not have this bug, it seems that it is only the new "patent" of Office 2007.

The emergence of such low-level bugs, the development and review of Microsoft staff is not rigorous, at least it can be said that it is a hundred secrets, especially the old version of the product is no problem, will undoubtedly make Microsoft more embarrassing.

Copyright © Windows knowledge All Rights Reserved