Фред выразил некоторое замешательство и беспокойство по поводу результатов, полученных при вычитании определенных чисел. Например, когда он вычитает 3809717,98 из 3799904,94, он должен получить -9813,04, но вместо этого получит -9813,04000000003.

То, что видит Фред, является артефактом ограничений Excel. Проблема в конечном итоге связана с тем, как Excel работает с числами с плавающей запятой. Компьютеры должны хранить числа внутри как двоичные значения, а не как десятичные значения, которые мы видим на экране. Целые числа относительно легко можно сохранить как двоичные значения. Когда вы добавляете десятичную точку в смесь, то сохранение очень больших или очень маленьких чисел становится более проблематичным — Excel просто не может хранить их с абсолютной точностью. Вместо этого Excel предоставляет «приблизительный» результат до 15 цифр (пределы его точности). Таким образом, вы получите что-то вроде -9813.04000000003, которое содержит полные 15 цифр точности, возможные в Excel.

Полное обсуждение того, как числа с плавающей запятой поддерживаются в Excel и компьютерах в целом, может очень быстро стать чрезвычайно техническим. Для тех, кто хочет получить больше информации по теме, вот два места, где вы можете начать свое исследование:

http://support.microsoft.com/kb/78113 http://download.oracle.com/docs/cd/E19957-01/806-3568/ncg_goldberg.html

Суть в том, что единственный способ получить «точные» результаты, которые вы хотите, с нужным количеством десятичных знаков, — это использовать функцию ОКРУГЛ в ваших формулах, как показано здесь:

=ROUND(3799904.94 - 3809717.98, 2)

При желании вы также можете изменить точность всех формул, выполнив следующие действия:

  1. Выберите «Параметры» в меню «Инструменты». Excel отображает диалоговое окно «Параметры».

  2. Убедитесь, что отображается вкладка «Расчет». (См. Рис. 1.)

  3. Убедитесь, что установлен флажок Precision As Displayed.

  4. Щелкните ОК.

Теперь Excel использует точность, отображаемую на экране, во всех своих вычислениях, вместо того, чтобы выполнять вычисления с полной 15-значной точностью, которую он обычно поддерживает.

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (3354) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и более поздних версий) здесь:

link: / excelribbon-Errors_When_Subtracting [Ошибки при вычитании].