3

На новом листе (я использую Excel 2013), начиная с верхнего левого угла, я набираю:

=18.6 + 67.2 | =A1-85.8 = 0 | =(A1-85.8) * 1000000000000

ожидание

85.8 | TRUE | 0

Фактический результат

85.8 | FALSE | 0.014210855

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

Может кто-нибудь объяснить, почему это происходит и почему это происходит только с некоторыми парами значений (и всегда не целыми числами)?


Число строк, заполненных так (и повторное использование F9):

=RANDBETWEEN(10, 1000)/10 | =RANDBETWEEN(10, 1000)/10 | =A1 + B1 | =C1-ROUND(C1,1)=0 | =(C1-ROUND(C1,1)) * 1000000000000

помогает продемонстрировать очевидную случайную природу этого явления.

1 ответ1

4

Мы можем увидеть этот странный эффект в действии (как думает Excel), обновив столбец B с =A1-85.8 = 0 до =A1-85.8

Итак, используйте КРУГЛЫЙ, чтобы исправить

НАПРИМЕР

=ROUND(A1-85.8, 0) = 0

Чтобы объяснить, почему, пожалуйста, просмотрите этот Источник, который объясняет все это. (слишком много, чтобы скопировать)

Также по той же ссылке, что и выше

В некоторых случаях вы можете предотвратить влияние ошибок округления на работу, используя параметр «Точность как отображается». Эта опция заставляет значение каждого числа в рабочем листе быть отображаемым значением. Чтобы включить эту опцию, выполните следующие действия:

В Excel 2003 и более ранних версиях выберите Параметры в меню Сервис. На вкладке «Расчет» установите флажок «Точность как отображается».

В Excel 2007 нажмите кнопку Microsoft Office, выберите «Параметры Excel», а затем нажмите «Дополнительно». В разделе «Расчет этой книги» выберите нужную книгу, а затем установите флажок «Задать точность как отображается».

В Excel 2013 и 2010 щелкните «Файл», затем «Параметры» и выберите категорию «Дополнительно». В разделе «Расчет этой книги» выберите нужную книгу, а затем установите флажок «Задать точность как отображается».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .