AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.04.2019, 00:02   #1  
ta_and is offline
ta_and
Участник
 
226 / 122 (5) +++++
Регистрация: 26.02.2002
Адрес: СПб
Ошибка сложения больших чисел.
Уж не знаю куда пихнуть этот баг.
То ли смеяться, то ли плакать.
И совсем не знаю как это лечить...
От слова СОВСЕМ.
Смотрим во вложенном файле на сумму и умиляемся, всплескиваем руками, улыбаемся и машем....
Вложения
Тип файла: xlsx 20190421_2.xlsx (12.2 Кб, 79 просмотров)
Старый 22.04.2019, 07:33   #2  
mdanko2000 is offline
mdanko2000
Участник
 
44 / 40 (2) +++
Регистрация: 21.04.2014
Ну не умеет excel с большими числами работать

Только подкручивать Excel.

Например, есть надстройка расчеты с большими числами, но она только с целочисленными работает нормально.
Для плавающей надо смотреть, пилить.
Старый 22.04.2019, 09:34   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,940 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Ну и в чем проблема ?
Это же везде такое будет не только в Excel

Посмотрите на это с другой стороны.
Максимальное число во вложении
144395647983495
ошибка -0,002812500

погрешность 2*10^-17
по-моему очень неплохой результат.

Если все же нужно копейки как-то ловить, то возможно поможет такой прием - напишите макрос - свою функцию суммирования.
а в ней перед суммированием сперва складывается самый большие по модулю числа.
Тогда получается точный 0.

пример во вложении
Вложения
Тип файла: xlsx 20190421_3.xlsx (13.9 Кб, 74 просмотров)
Старый 22.04.2019, 09:56   #4  
ta_and is offline
ta_and
Участник
 
226 / 122 (5) +++++
Регистрация: 26.02.2002
Адрес: СПб
Числа формируются в процессе выполнения программы.
Изменить порядок поступления чисел в суммирование нельзя.
только если навешивать дополнительный контейнер, в который собирать эти числа, ранжировать их и только потом суммировать.
В общем, проблема на ровном месте.
Старый 22.04.2019, 10:39   #5  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
"Не баг, но фича" (с) Причем для большинства продуктов Microsoft это настройка по умолчанию

Системные ограничения Excel

Точность представления чисел, разрядов, не более = 15 разрядов


Цитата с другого форума

Цитата:
Внутри себя (...) представляет числа в формате double - можешь почитать MSDN по поводу этого формата и его точности. Если по простому говорить, то формат предусматривает для ЗНАЧИМОЙ части числа всего 53 бита (один неявный), а, соответственно, переводя из двоичной системы, получаем что эти 53 бита позволяют хранить

53*LOG(2)/LOG(10)

т.е. примерно 15.9546 десятичных разряда
Соответственно, в Вашем случае, как только на очередном числе получаем превышение этой точности, то все остальные разряды или сбрасываются в ноль или забиваются случайными данными

Как уже было сказано, тупо Excel не предназначен для работы с такими большими числами.


Результаты арифметических операций с плавающей точкой в Excel могут быть неточными
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...

Последний раз редактировалось Владимир Максимов; 22.04.2019 в 11:14.
Старый 22.04.2019, 21:42   #6  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Проверил в LibreOffice, то же самое. То есть это не MS, а более широкая проблема.

Что считаем кстати? Полет на Mарс? Цифры нереально большие.
Старый 23.04.2019, 10:10   #7  
БАХ43 is offline
БАХ43
Участник
 
92 / 54 (2) ++++
Регистрация: 15.02.2013
Адрес: г.Москва, г. Зеленоград
Цитата:
То есть это не MS, а более широкая проблема.
Конечно не MS. Скорее Intel. Количество бит в байте, количество байт для хранения числа, разрядность процессора. Просто разработчики железа в свое время решили, что этого будет достаточно. А для расчета полета на Марс используйте ЕС ЭВМ с двоично-десятичным представлением больших чисел и фортран с его обширными математическими библиотеками.
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат!
Старый 23.04.2019, 18:13   #8  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от БАХ43 Посмотреть сообщение
Конечно не MS. Скорее Intel. Количество бит в байте, количество байт для хранения числа, разрядность процессора. Просто разработчики железа в свое время решили, что этого будет достаточно. А для расчета полета на Марс используйте ЕС ЭВМ с двоично-десятичным представлением больших чисел и фортран с его обширными математическими библиотеками.
Фигвам а не системотехнику.
Это просто следование стандарту IEEE Standard for Floating-Point Arithmetic (IEEE 754)
https://en.wikipedia.org/wiki/IEEE_754

Не баг, а фича.
Старый 24.04.2019, 09:51   #9  
БАХ43 is offline
БАХ43
Участник
 
92 / 54 (2) ++++
Регистрация: 15.02.2013
Адрес: г.Москва, г. Зеленоград
Цитата:
Это просто следование стандарту IEEE Standard for Floating-Point Arithmetic (IEEE 754)
Вот про то я и говорю, стандарт же тоже кто-то когда-то придумал...
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат!
Старый 23.04.2019, 10:33   #10  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,940 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Есть тип decimal
Можно было его попробовать привинтить в Excel
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Программное распределение маленьких прямоугольников, в больших miklenew Курилка 10 20.06.2014 13:22
Глава Microsoft объявил о больших переменах Logger Курилка 1 11.07.2013 19:24
Ошибка при выходе из форума (Google Chrome) Zabr Обсуждение форума 15 25.09.2010 21:39
Ошибка Yoil Обсуждение форума 1 11.03.2006 13:57
Ошибка загрузки вложения AndyD Обсуждение форума 10 09.11.2005 22:04

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:39.