-1

Кажется, что Excel 2010 вычитает 0,00000000000001 из значения валюты. Я нашел это в нескольких вкладках моей электронной таблицы. Это выглядит примерно так:

(пустая ячейка) (пустая ячейка) 135,57 $ 135,57

- $ 42,38 (пустая ячейка) $ 93,19 $ 93,19

(пустая ячейка) $ 1000,00 1093,19 1093,19

В столбце EI есть уравнение = IF(C3 = D3, "P", "False"), которое показывает P для первого ряда, False во втором ряду и P в третьем ряду. Во втором ряду должна быть отображена буква P.

Глядя на длину значений, я вижу, что длина первых $ 93,19 составляет 16 символов! расширяя его, я получаю 93,1899999999997

Как это происходит в разных местах электронной таблицы / книги Excel и как я могу это исправить?

Спасибо

1 ответ1

0

Это происходит потому, что Excel использует внутренние числа с плавающей запятой IEEE-754, как и почти все программы, написанные сегодня. IEEE-754 использует основание 2, а не основание 10, поэтому некоторые числа, которые можно легко отобразить в основании 10 (например, 1/10), должны быть аппроксимированы с использованием обозначения основания 2.

Это не просто исправить, потому что это особенность современных процессоров, а не только Excel. Тем не менее, в статье базы знаний Microsoft предлагает обойти эту проблему, перейдя в File-> Excel Options-> Advanced Options и включив «Precision as Displayed», и убедившись, что каждая ячейка в книге имеет правильную точность для арифметики, которую вы ищете.

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

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