Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблемы округления чисел

464
19 января 2004 года
WildAn
147 / / 19.05.2003
Дело в excel
Вот посчитал доли каждого числа в процентах.
Если руками складывать эти проценты, то 100% не получаем. Подскажите, чем считать эти доли и как их округлять, чтобы корректные проценты получить

3632 15,66%
4490 19,36%
2633 11,35%
9833 42,39%
2609 11,25%
100,01%
258
19 января 2004 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by WildAn
Дело в excel
Вот посчитал доли каждого числа в процентах.
Если руками складывать эти проценты, то 100% не получаем. Подскажите, чем считать эти доли и как их округлять, чтобы корректные проценты получить

3632 15,66%
4490 19,36%
2633 11,35%
9833 42,39%
2609 11,25%
100,01%



А что тебе, одна сотая не нравится, нормальная ошибка округления. Они есть и корректные. Ты же получешь число с периодом после запятой, отбрасываешь(округляешь) лишнюю часть и хочешь получить ровное число... нет конечно, так не получится, это число будет с такой ошибкой округления как и те числа из которых его сложил.
В физ. экспериментах есть даже такой тип погрешности связанный как раз с округлением.
Хочешь получить числа с ошибкой округления 0,001 - бери доли с тысячными потом округляй до сотых и вот твое ровное число.

Т.е. подитожим, когда есть округление, то результат-сумма может отличаться на плюс или минус 1 (сотую, если округляешь по сотым; тысячную, если окргуляешь по тысячным). Т.е. ты просто всем говоришь, что твои расчеты сделаны с точностью до сотых долей процентов и все, к тебе больше никаких претензий нет, это математика, против нее не попрешь. А то что ты хочешь - это уже называется подгонка, спец. на одну сотую уменьшить одну из долей, чтобы получить ровно 100.

464
19 января 2004 года
WildAn
147 / / 19.05.2003
Цитата:
Originally posted by SergeySV

Т.е. подитожим, когда есть округление, то результат-сумма может отличаться на плюс или минус 1 (сотую, если округляешь по сотым; тысячную, если окргуляешь по тысячным). Т.е. ты просто всем говоришь, что твои расчеты сделаны с точностью до сотых долей процентов и все, к тебе больше никаких претензий нет, это математика, против нее не попрешь. А то что ты хочешь - это уже называется подгонка, спец. на одну сотую уменьшить одну из долей, чтобы получить ровно 100.


Я так тоже думаю. Просто хотел узнать, может есть что-то. Ну раз нет. То оставим все как есть Благодарю

258
19 января 2004 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by WildAn

Я так тоже думаю. Просто хотел узнать, может есть что-то. Ну раз нет. То оставим все как есть Благодарю



Да ты не волнуйся, вон бухгалтерия у нас денежки считает (которые как известно счет любят) и ничего, тоже округляет до копейки и плюс минус копейках при таких расчетах ошибкой не являются, а когда 101 форму сдают, там суммы в тыс. рублях указываются, сам понимаешь какая ошибка появляется, а эта отчетность сдается в ЦБ ;-)

459
20 января 2004 года
gacol
273 / / 12.02.2003
Цитата:
Originally posted by WildAn
Дело в excel
Вот посчитал доли каждого числа в процентах.
Если руками складывать эти проценты, то 100% не получаем. Подскажите, чем считать эти доли и как их округлять, чтобы корректные проценты получить

3632 15,66%
4490 19,36%
2633 11,35%
9833 42,39%
2609 11,25%
100,01%

464
20 января 2004 года
WildAn
147 / / 19.05.2003
Цитата:
Originally posted by gacol


Не понял, что хотел сказать, gacol

459
20 января 2004 года
gacol
273 / / 12.02.2003
Цитата:
Originally posted by WildAn
Дело в excel
Вот посчитал доли каждого числа в процентах.
Если руками складывать эти проценты, то 100% не получаем. Подскажите, чем считать эти доли и как их округлять, чтобы корректные проценты получить

3632 15,66%
4490 19,36%
2633 11,35%
9833 42,39%
2609 11,25%
100,01%



Если это для красивого отчета, то я поступаю так.
У самого большого числа (42.39%) отнимаю/прибавляю разницу (0.01%).
И этим избавляю вышестоящих от лишних вопросов, поскольку складывать они умеют и любят. 8)

464
20 января 2004 года
WildAn
147 / / 19.05.2003
Цитата:
Originally posted by gacol


Если это для красивого отчета, то я поступаю так.
У самого большого числа (42.39%) отнимаю/прибавляю разницу (0.01%).
И этим избавляю вышестоящих от лишних вопросов, поскольку складывать они умеют и любят. 8)


Не хочется сидеть и проверять массивы цифр :-)
Лучше сделаю поясниловку: погрешность округления такая-то :-)

459
20 января 2004 года
gacol
273 / / 12.02.2003
Цитата:
Originally posted by WildAn

Не хочется сидеть и проверять массивы цифр :-)
Лучше сделаю поясниловку: погрешность округления такая-то :-)


Если начальство читает поясниловки и слова "погрешность" "округление" не вызывает у него отрыжку, то в самом деле лучше.
А самому проверять массивы не надо - есть же функции МАКС НАЙТИ...

464
20 января 2004 года
WildAn
147 / / 19.05.2003
Цитата:
Originally posted by gacol

А самому проверять массивы не надо - есть же функции МАКС НАЙТИ...


Так ведь нужно еще знать прибавлять или отнимать величину погрешности

267
20 января 2004 года
Cutty Sark
1.2K / / 17.10.2002
У этой проблемы есть весьма интересное развитие.

Разрешим округлять числа не в ближайшую сторону, а в любую - например 14.2 можно округлить как к 14, так и к 15 (назовем такую операцию квазиокруглением). Я тут в примерах округляю до целых, но можно и до сотых - это не имеет значения. Тогда можно квазиокруглить все числа и их сумму так, что равенство сохранится. Пример
1.4 + 1.4 = 2.8
При обычном округлении:
1 + 1 = 3
При квазиокруглении:
1 + 1 = 2 или 1 + 2 = 3

Это довольно мощный способ:
Например, можно квазиокруглить последовательность
а_1,а_2,...,а_N так, что будут сходиться не только общая сумма, но и все суммы подряд идущих чисел:
a_i + a_{i+1} + ... + a_{i+k}

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

Я как-то реализовывал эти алгоритмы для одной бухгалтерии. Тётушки были очень удивлены - они думали, что такая "ошибка округления" не убиваема - а тут фокус-покус - и всё сходится. При этом они совершенно спокойно воспринимают тот факт, что 13р 23.2коп. округляют к 13р 24 коп.
В общем, если кого интересует, могу поподробней рассказать, как это делается...
464
20 января 2004 года
WildAn
147 / / 19.05.2003
Цитата:
Originally posted by Cutty Sark
У этой проблемы есть весьма интересное развитие.
В общем, если кого интересует, могу поподробней рассказать, как это делается...


Интересно посмотреть на это творение

267
20 января 2004 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by WildAn

Интересно посмотреть на это творение



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

459
20 января 2004 года
gacol
273 / / 12.02.2003
Цитата:
Originally posted by WildAn

Так ведь нужно еще знать прибавлять или отнимать величину погрешности


И знать не надо, если
Погрешность = 100% - СУММА()
то ее надо всегда прибавлять.

Вообще это самый простой способ. Когда элементов слишком много, ошибка может быть достаточно большой. Тогда я погрешность распределяю по тем элементам, которые при округлении близки к границе, например 1.449 и 1.338 дают по 1.4, но первое с меньшей потерей точности можно заменить на 1.5, если надо.

267
20 января 2004 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by Cutty Sark


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



Требование к сходимости подряд идущих слагаемых, кстати, не является бесполезным:
Например такая таблица:
Иванов октябрь валенки 1.5
Иванов октябрь калоши 2.3
Иванов ноябрь валенки 0.9
......
Петров декабрь калоши 5.6

Так вот все продажи Иванова, или все продажи Иванова в декабре - это как раз суммы подряд идущих слагаемых.

464
20 января 2004 года
WildAn
147 / / 19.05.2003
Цитата:
Originally posted by Cutty Sark


Требование к сходимости подряд идущих слагаемых, кстати, не является бесполезным:
Например такая таблица:
Иванов октябрь валенки 1.5
Иванов октябрь калоши 2.3
Иванов ноябрь валенки 0.9
......
Петров декабрь калоши 5.6

Так вот все продажи Иванова, или все продажи Иванова в декабре - это как раз суммы подряд идущих слагаемых.


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

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог