ВНИМАНИЕ!! кривая математика в exel

Анонимные
2011-06-20T08:12:58+00:00

КРИВАЯ Математика в Exel!!! Можете повторить у себя в любой версии

Есть три числа в ячейках

A1  0,8049

A2  0,7999

A3  77

Требуется посчитать по формуле A3*(A1-A2) и значение округлить до двух знаков.

Пишем в ячейке B1 формулу =A3*(A1-A2)  получаем 0,385  в ячейке С1 пишем формулу =ОКРУГЛ(B1;2)  и получаем 0,38!!! - WTF ??????????????

Проверяем, в ячейке B2 пишем прям сразу числами =77*(0,8049-0,7999) получаем 0,385  в ячейке С2 пишем =ОКРУГЛ(B2;2) и получаем 0,39!!!

Что там за математики сидят, они что там через интегралы что ли считают??? или рандомно???

Microsoft 365 и Office | Excel | Для дома | Windows
Microsoft 365 и Office | Excel | Для дома | Windows

Семейство программного обеспечения Майкрософт для работы с электронными таблицами, оснащенное инструментами для анализа, построения диаграмм и обмена данными.

Заблокированный вопрос. Этот вопрос был перенесен из сообщества службы поддержки Майкрософт. Вы можете проголосовать о его полезности, но не можете добавлять комментарии или ответы, а также подписаться на этот вопрос.

Комментариев: 0 Без комментариев

Ответы: 5

Сортировать по: Наиболее полезные
  1. Анонимные
    2011-07-14T10:02:55+00:00

    Попробуйте включить режим выысилений с точностью, как отображается на экране 

    в 2003: Сервис --- Параметры --- Вычисления --- отметить "Точность как на экране"

    в 2010: Файл --- Параметры --- Дополнительно --- отметить "Задать точность как на экране".

    Затем у каждого чиса через форматирование чисел укажите нужное количество знаков после запятой. (Формат ячеек --- Число --- Числовой).

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

    Всем, кто получал программистское образование, известен факт, что компьютерные вычисления --- всегда приближенные. Вы в чем-то правы, когда говорите о каких-то "интегралах". На самом деле любой компьютер и любая вычислительная программа использует сложные математические алгоритмы для вычисления так называемых "простых" арифметических действий. Даже таких как умножение. Посему мы получаем в результате на 0,385, а число, приближенное к нему с определенной степенью точности. Иногда такой подход дает вот такие интересные казусы, о которых Вы рассказали.

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

    Кстати, в этом особом режиме можно обойтись от использования функции ОКРУГЛ, если результат принудительно оформить с двумя знаками после запятой. Округление будет происходить автоматически при выводе на экран.

    Удачи!

    Этот ответ помог вам?

    Пользователи, которые сочли этот ответ полезным: 5.
    Комментариев: 0 Без комментариев
  2. Анонимные
    2011-09-06T13:56:37+00:00

    OK Guys ! ! !

    nothing strange here :)

    you'r getting such a "strange" result because actually (0.8049-07999) = 0.00499999999999989, NOT exactly 0.005.

    As a result, 77*0.00499999999999989 equals  0.384999999999992, and NOT 0.385.

    In Excel all calculations are done based on 32 byte length(1024 bites). While the actual result is not shown within the user interface -spreadsheet (this is caused by formatting issues: say if it is set to "General", then the end result SHOWN is rounded up and only the first "9" is considered, consequent 9 s are ignored), at the bite code level the data is still  stored on 32 byte length, though.

    Этот ответ помог вам?

    Один пользователь счел этот ответ полезным.
    Комментариев: 0 Без комментариев
  3. Анонимные
    2011-06-28T07:40:44+00:00

    Вы прислали действительно интересный пример.

    На мой взгляд, тут проблема может быть в хранении числа 0,7999 в Excel.

    Если считать на калькуляторе или, как вы написали, указывать числа, то получается результат 0,385.

    А вот если считать =A3*(A1-A2), потом значению присвоить экспоненциальный формат с 13 знаками после запятой, то увидим число 3,849999999999920E-01, ну или числовой с 14 знаками после запятой, что одно и то же.

    В вашем случае это выливается в ошибку при округлении, хотя функция ОКРУГЛ работает корректно.

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

    Этот ответ помог вам?

    Комментариев: 0 Без комментариев
  4. Анонимные
    2011-06-21T14:01:28+00:00

    Проверил в безопасном, тоже самое, вообще на 2003 офисе также считается, обнаружил следующее, результат формулы скопировал в новую книгу и вижу вот такую картинкуКак так??

    Этот ответ помог вам?

    Комментариев: 0 Без комментариев
  5. Анонимные
    2011-06-20T12:51:08+00:00

    Добрый день

    Вот мой результат. Также проверял в Office 2007, результат идентичен. Формат всех ячекк - Общий. Пробуйте запустить Excel 2010 в безопасном режиме(удерживайте кнопку Ctrl на клавиатуре, запустите Excel из Пуск-Все программы-Microsoft Office- Microsoft Excel 2010, на запрос нажмите кнопку Да), и проверьте в новом документе расчет.

    Этот ответ помог вам?

    Комментариев: 0 Без комментариев