Разделы

ПО Софт Безопасность Пользователю

В Excel 2007 обнаружены ошибки вычислений

Пользователи Microsoft Excel 2007 обнаружили, что программа не всегда показывает верный результат вычислений. В кратчайшие сроки проблема была изучена разработчиками и они пришли к выводу, что погрешность возникает только при отображении чисел, в то время как сами вычисления выполняются верно. Соответствующий патч вскоре будет опубликован на сайте компании.
В последней версии Microsoft Excel найдена ошибка, которая влияет на итог вычислений. Так, с помощью любого калькулятора нетрудно проверить, что результатом умножения 850 на 77,1 является число 65 535, однако Excel так не считает и выдает совершенно иной ответ – 100 000. Ошибка возникает не только во время перемножения этих чисел, но и при умножении 5,1 на 12850, 10,2 на 6425 и еще в девяти других случаях.

Между тем в блоге Microsoft Developer Network сообщается, что ошибка присутствует не в вычислениях, а в отображении верного результата, т.е. в памяти программа хранит корректное число. «При вычислении =850*77,1 вы увидите неверный результат, но если в другой ячейке умножить его на два, то программа выдаст вполне корректное число 131 070», - отмечает редактор блога Дэвид Гайнер (David Gainer).

Разработчики обнаружили, что из всего огромного множества чисел с плавающей запятой, которые может хранить Excel 2007, существует шесть чисел между 65534.99999999995 и 65535, а также шесть чисел между 65535.99999999995 и 65536, которые и вызывают ошибку. «Вы можете вводить эти числа в ячейки, и это не вызовет проблем, но если такое число является результатом вычислений, оно отображается неверно», - сообщается в блоге.

Многие пользователи Microsoft Excel 2007 обнаружили, что программа выдает неверные результаты
Многие пользователи Microsoft Excel 2007 обнаружили, что программа выдает неверные результаты

Какая CRM подойдет вашей компании? Тест
Цифровизация

Об этом недочете разработчикам стало известно 24 сентября и уже на следующий день они нашли способ, как его исправить. В настоящий момент патч уже разработан и проходит этап тестирования. Вскоре он будет опубликован на сайте компании. По словам г-на Гайнера, программисты Microsoft относятся к вычислениям в Excel очень ответственно и предпримут все необходимые меры для того, чтобы исправить ошибку. Один из участников блога упомянул, что подобная ошибка может быть обнаружена и в Visual Studio 2005, однако представители Microsoft эту информацию не комментировали.

Данная ситуация заставляет вспомнить о печально известной ошибке Pentium FDIV на некоторых процессорах Pentium, которая приводила к случайным погрешностям при делении чисел с плавающей точкой. Ошибка была раскрыта профессором американского колледжа в 1994 г., а затем замечена пользователями по всему миру. Некоторое время Intel старался убедить, что ошибка не является серьезной. Однако впоследствии шквал критики в адрес компании заставил ее отозвать все процессоры с этим дефектом.

Сергей Попсулин