Привет всем Супер Пользователям!

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

0.140495867768595,
0.173553719008264,
0.206611570247934,
0.076741440377804,
0.0826446280991736,
0.118063754427391,
0.063754427390791,
0.0814639905548997,
0.0566706021251476,

Когда я выполняю простую функцию суммирования в Excel, результат равен 1.0000000000000000, но когда я помещаю эти числа в калькулятор, результат равен 0.9999999999999999 (что правильно) -> мой вопрос, следовательно, есть ли способ установить поведение Excel рассчитать это правильно и почему это неправильно? Заранее всем спасибо за ваши предложения!

3 ответа3

1

Числовые значения Excel имеют 15 цифр точности. Все после 15-й цифры будет отображаться как 0.

Статья поддержки Microsoft

Обходной путь: Если вы хотите показать более 16 значащих цифр, вам нужно ввести значение в виде текста, то есть начать с одинарной кавычки, а затем ввести значение.

0

Excel хранит 15 значащих цифр точности. Таким образом, пятое значение в вашем списке - 0.0826446280991736 , рассматривается как 0.082644628099174 в сумме. Аналогично для восьмого и девятого значений в вашем списке.

См. Https://www.microsoft.com/en-us/microsoft-365/blog/2008/04/10/understanding-floating-point-precision-aka-why-does-excel-give-me-seemingly-wrong -ответы / для получения дополнительной информации о том, как Excel хранит числа.

0

Excel хранит только 15 значащих цифр точности. Все более 15 значащих цифр будут округлены.

Следовательно, результат 0.9999999999999999 округляется до 1.00000000000000 , то есть до 1 .

Input                     Sum (by Excel)           Sum (Actual)
-----------------------   ----------------------   -----------------------
0.140495867768595  [15]   0.140495867768595 [15]   0.140495867768595  [15]  
0.173553719008264  [15]   0.314049586776859 [15]   0.314049586776859  [15]  
0.206611570247934  [15]   0.520661157024793 [15]   0.520661157024793  [15]  
0.076741440377804  [14]   0.597402597402597 [15]   0.597402597402597  [15]  
0.0826446280991736 [15]   0.680047225501771 [15]   0.6800472255017706 [16]   
0.118063754427391  [15]   0.798110979929162 [15]   0.7981109799291616 [16]   
0.063754427390791  [14]   0.861865407319953 [15]   0.8618654073199526 [16]   
0.0814639905548997 [15]   0.943329397874852 [15]   0.9433293978748523 [16]   
0.0566706021251476 [15]   1.00000000000000  [15]   0.9999999999999999 [16]   
0.000000000000001  [ 1]   1.00000000000000  [15]   1.0000000000000009 [17]   <-- Bonus info

[ ] = number of significant digits

Бонус: даже если вы добавите еще 0.000000000000001 (15-й знак после запятой), результат все равно будет равен 1 .

Ссылка: https://en.wikipedia.org/wiki/Numeric_precision_in_Microsoft_Excel

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