На прошлой неделе участники публичного форума Google, посвященного Microsoft Excel, обнаружили, что в некоторых случаях Excel 2007 выдает абсолютно неправильные результаты.
На прошлой неделе участники публичного форума Google , посвященного Microsoft Excel, обнаружили, что в некоторых случаях Excel 2007 выдает абсолютно неправильные результаты. Например, при попытке перемножить 850 и 77,1 у Excel получается 100 000, тогда как правильный результат: 65 535. Есть и другие случаи, когда правильный ответ должен быть 65 535, а отображается 100 000. Число 65 535 примечательно тем, что это максимальное значение 16-разрядного двоичного счетчика.
Во вторник команда разработчиков Excel из Microsoft пообещала в ближайшее время выпустить поправку и объяснила, что ошибка кроется не в вычислениях, а в их отображении. «В 12 очень специфических случаях Excel неправильно отображает результат… Проблема заключается не в самих вычислениях, а лишь в отображении их результата в таблице (в памяти Excel результат получается правильный)», — говорится в блоге Microsoft .
Это должно означать, что если неправильно отображаемый результат используется для дальнейших вычислений, ошибки не будет. Однако некоторые участники упомянутого выше форума Google проводят пример, когда при перемножении 850 и 77,1 с последующим добавлением единицы результат все равно получается неправильным: 100 001.
В любом случае это очень серьезная ошибка, которая может стоить реальным людям реальных денег, и она должна быть немедленно исправлена. Надо отметить, что на этот раз Microsoft открыто признала проблему, как только она была обнаружена, что случается не всегда. Возможно, руководство Microsoft по управлению продуктами усвоило уроки прошлого. В свое время Intel, когда в арифметическом устройстве ее нового процессора Pentium была обнаружена ошибка, пыталась замять эту проблему, что, конечно же, не сработало.
Еще этот случай напоминает те давние времена до интернета, когда слово «баг» ассоциировалось не с компьютерным вирусом, а с тривиальными ошибками программирования.