|
|
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousП-Л, все перечисленные Вами аспекты для постоянной ставки поддаются довольно простой реализации (для каждого пополнения вводится дата начала начисления процентов, сами проценты считаются по формуле сложного процента для каждого пополнения отдельно, если расчет ведется на заданную (будущую) дату, то результат фиксируется). В случае, когда сама ставка скачет как бешеная лошадь - да, проще начислять ежедневно, но, опять-таки, начислять можно без ограничения разрядности - это практически снимает вопросы по ошибкам округления. Округление суммы до копеек - можно либо отнести на презентацию, либо ввести отдельным полем. Подход с хранением ошибок округления - по сути то же самое, но немножко через задний проход. Да, я сам тоже считал проценты не еждневно, а на "элементарных интервалах" - где сумма и процентная ставка остаются постоянными. Начисление процентов ежедневно как разницу между двумя датами я видел в АБС - банк по определению обязан еждедневно иметь баланс. И стотых долей копеек в балансе быть не может. Проблема на самом деле в хронической нестыковке математики и бухгалтерии. Математически расчитанные суммы при любом суммировании будут давать правильное значение. В экселе, задав форматирование до двух знаков после запятой, вид чисел будет похож на тот, что нужен бухгалтерам. Но на самом деле сумма округленных значений с итогом может сойтись только случайно. Чтобы сходилась надо считать сложнее - с накоплением разности с округлением либо через разницу сумм для двух дат. Для банка хранение сумм без ограничения разрядности - запретная вещь. Как я понял ТС у него такое же ограничение, поэтому для него такие способы не темная дырка в заднем проходе, а путь в светлое будущее. (А когда, етить-ее, красивая отчетность делается в тысячах, в миллионах, то без ручной подкрутки не обойтись. К счастью красивой отчетности обычно не много, делается руками, поэтому подкручивается на ходу) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2013, 09:19 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
как считать разницу округлений "на лету" чтобы в таблице не хранить ? я сейчас создал таблицу main где храню информацию ключ договора,% ставка, сумма, дата валютирования, разница округления и detail где сохраняю ключ договора, сумма округления до 2 знаков, сумму округления до 6 знаков разницу записываю в таблицу main разница округления при создании проводки буду брать сумму округленных до 2 знаков + разницу округления так оставлять ? (база разрастает) либо как то на лету считать и хранить данные только в main грубо говоря каждый раз LOOP-ить с самой первой даты в реализации кодов помогите пожалуйста хочу чтобы процедура выполнялась быстро ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2013, 09:41 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Бакытлибо как то на лету считать и хранить данные только в main грубо говоря каждый раз LOOP-ить с самой первой даты Вам же объяснили: считаете % с самой первой даты до сегодня, округл. до 2 зн. вычитаете все. что было начислено ранее быстро не будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2013, 10:34 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Бакытгде сохраняю ключ договора, сумма округления до 2 знаков, сумму округления до 6 знаков Ни 6, ни 20 знаков не смогут гарантировать, что в итоге расхождения не будет. Увеличение числа знаков лишь снижает вероятность такого. Если у вас общая сумма известна, то единственный гарантированный способ - отталкиваться от нее при вычислении промежуточных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2013, 11:17 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
П-ЛДа, я сам тоже считал проценты не еждневно, а на "элементарных интервалах" - где сумма и процентная ставка остаются постоянными. Начисление процентов ежедневно как разницу между двумя датами я видел в АБС - банк по определению обязан еждедневно иметь баланс. И стотых долей копеек в балансе быть не может. Баланс - это ведь не приращение (начисленные проценты), а остаток. Проблема с "ежедневным начислением" - в накоплении погрешности округления, и правильный способ от этого накопления избавиться - считать от базовой суммы. Поэтому на "элементарном интервале" можно считать сами суммы по сложному проценту от начала, а приращения - давать как разность сумм, текущей и предыдущей. ...и все же самое веселое занятие на свете - пытаться "свести" счет на несколько сотен тысяч позиций, где каждая позиция имеет НДС ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2013, 12:20 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous...и все же самое веселое занятие на свете - пытаться "свести" счет на несколько сотен тысяч позиций, где каждая позиция имеет НДС ;)Это вы округленный баланс (в тысячах) не считали :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2013, 12:33 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Bogdanov AndreyБакытгде сохраняю ключ договора, сумма округления до 2 знаков, сумму округления до 6 знаков Ни 6, ни 20 знаков не смогут гарантировать, что в итоге расхождения не будет. Если ошибка в 21 знаке, то для того, чтобы она "вылезла" во второй, придется просуммировать порядка 10^18 событий - а это, как ни крути, довольно много . А если взять мантиссу 38 знаков (изначально топик появился в oracle) - то очень много . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2013, 12:34 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousЕсли ошибка в 21 знаке, то для того, чтобы она "вылезла" во второй, придется просуммировать порядка 10^18 событийПары событий уже достаточно. Предположим, что точное значение для каждого из пары событий - 1.00249994. Если использовать по 7 знаков, то сумма двух событий 2.00499988, округляя до копеек имеем 2.00. Если же каждое событие сначала округлить до 6 знаков, а потом просуммировать, то получаем 2.005, что при округлении до копеек даст 2.01. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2013, 12:45 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Бакыт, если договоров мало, а вычислительной мощности - много, то можно поступить так. 1. Посчитайте общую сумму процентов по договору с даты начала действия договора по текущую дату. 2. Посчитайте общую сумму уже начисленных процентов. 3. Вычтите сумму, полученную на этапе 2, из суммы, полученной на этапе 1. Результат вычитания будет искомой суммой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2013, 13:16 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
П-ЛВо всех договорах, с которыми я имел дело, формула задавалась для начисления процентов за период. Чтобы ежедневные начисления за каждый день, будучи сохраненными до крпеек и потом сложенными, дали тот же результат, что и формула за период, надо считать как я предложил, или хранить ежедневную погрешность, которую тоже накапливать, как предложил Матроскин. Если в договоре нет начисления за день, то о каком расчёте за день может идти речь??? Такая запись в договоре означает, весь период сумма начисленных итого процентов не меняется... ( есть ещё такой вариант договора, когда в случае востребования за неполный период, пересчёт идёт "по другой ставке(формуле)", но это не значит что разница между этой формулой и основной должна быть начисленна в последний день периода... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2013, 15:10 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Нахуа собсно ТСу именно ЕЖЕДНЕВНОЕ начисление - он так и не раскололся. Ежедневное начисление бывает нужно банку. Для обычного управления активами/пассивами нужно иметь возможность мухой получать значения процентов на ЛЮБУЮ дату, в т.ч. на любое "сегодня" - это к авторЕсли в договоре нет начисления за день, то о каком расчёте за день может идти речь??? Вы никогда не составляли отчетность по кредитам/депозитам с многочисленными колонками наращенных/начисленных/... процентов на начало/конец/за период ? Есть методологическая проблема определения сумм процентов на текущую дату, на прошдую дату и за этот период если формируемые отчеты фиксируются и допускается правка данных задним числом - но этот ли проблема ТС - неизвестно. ТСу надо было бы озвучить первоначальную поставновку задачи. По ходу топика непонятно, что на самом деле требуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2013, 16:11 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andreyandrey_anonymousЕсли ошибка в 21 знаке, то для того, чтобы она "вылезла" во второй, придется просуммировать порядка 10^18 событийПары событий уже достаточно. Предположим, что точное значение для каждого из пары событий - 1.00249994. Если использовать по 7 знаков, то сумма двух событий 2.00499988, округляя до копеек имеем 2.00. Если же каждое событие сначала округлить до 6 знаков, а потом просуммировать, то получаем 2.005, что при округлении до копеек даст 2.01. Это-то да, worst case - имеем значительную ошибку округления уже на старте. Но стоит добавить еще одно событие - суммы чудесным образом сравняются. А вторая "копейка" вылезет лишь на 166670-й итерации - я, собственно, об этом. Чем больше верных знаков - тем медленнее накапливается ошибка округления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2013, 02:32 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
это банку нужно договоров пока мало но будет расти поэтому я и боюсь со временем начнет тормозить и для этого ищу более эффективную остаток тоже будет меняться по событию выдача/погашение поэтому нужно сделать ежедневное начисление структуру таблиц и кодов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2013, 08:07 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousЭто-то да, worst case - имеем значительную ошибку округления уже на старте. Но стоит добавить еще одно событие - суммы чудесным образом сравняются.Ну так я сразу и написал, что добавление знаков просто снижает вероятность. Если же нужен не вероятностный алгоритм "чудесным образом работающий", а гарантированный, то никакое хранение разницы округлений не поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2013, 08:26 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andreyandrey_anonymousЭто-то да, worst case - имеем значительную ошибку округления уже на старте. Ну так я сразу и написал, что добавление знаков просто снижает вероятность. Если же нужен не вероятностный алгоритм "чудесным образом работающий", а гарантированный, то никакое хранение разницы округлений не поможет. Добавление точности снижает скорость накопления ошибки округления - я настаиваю :) ...а что такое "гарантированный алгоритм" для случая, когда точное значение не может быть представлено в структуре данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2013, 11:20 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous...а что такое "гарантированный алгоритм" для случая, когда точное значение не может быть представлено в структуре данных?По изначальному условию было "человеку надо выплатить 10 руб", то есть точное значение общей суммы известно и представимо. Соответственно, гарантированным алгоритмом я называю такой, который в итоге эту сумму и даст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2013, 11:58 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andreyandrey_anonymous...а что такое "гарантированный алгоритм" для случая, когда точное значение не может быть представлено в структуре данных?По изначальному условию было "человеку надо выплатить 10 руб", то есть точное значение общей суммы известно и представимо. С одной стороны, это совсем другая задача - распределить заданную сумму на N корзинок в соответствии с заданным правилом (к примеру, равномерно). С другой, даже в этой задаче общая сумма не обязательно представима - возьмем любое иррациональное число... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2013, 12:22 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousС одной стороны, это совсем другая задача - распределить заданную сумму на N корзинок в соответствии с заданным правилом (к примеру, равномерно).Ну у вас задача может быть и другая. А я обсуждаю ту, что предложена топикстартером. Если хотите, то сформулируйте другую задачу - порешаем и ее. andrey_anonymousС другой, даже в этой задаче общая сумма не обязательно представима - возьмем любое иррациональное число...В первом посте топикстартера формулировка была не очень внятная, но несколькими постами ниже он дал вполне конкретный пример с вполне представимой общей суммой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2013, 13:02 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous, 10 руб это неудачный пример наверное если чисто математически то имеем дату валютирования остаток на дату (меняется по событию выдача/погашение) % ставка на дату(будет меняться мало ли может клиентом доп.соглашение подпишет) метод расчета 360 дней в году(стандартно, но возможно фактически могут взять 365/366 дней) зная эти параметры вычисляем % за 1 день и с этого момента начинается пьеса..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2013, 13:05 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Бакытзная эти параметры вычисляем % за 1 день и с этого момента начинается пьеса..... С этого момента начинается маразм, поскольку дневной процент нигде никогда и никто первичным не делает. Но об этом в топике уже говорили и не раз. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2013, 13:42 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Бакытэто банку нужно Банку нужно нанять специалистов, которые умеют это делать при помощи нормальной АБС. Окуеть! Привезли больного на операцию, хирург от нуля начинает читать популярные книжки про анатомию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2013, 22:36 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
уважаемые, прошу у вас только дельный совет технической реализации данной задачи остальные аспекты опускаем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 07:52 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Бакытпрошу у вас только дельный совет технической реализации данной задачиВы задачу четко сформулируйте. После этого могут быть четкие советы. Бакытостальные аспекты опускаемИменно "аспекты" и влияют на способ реализации. Бакытзная эти параметры вычисляем % за 1 день и с этого момента начинается пьеса..... Вот с этого места поподробнее. Что значит "вычисляем % за 1 день". Значит ли это что для каждого дня вы умеете получать некое значение суммы (в рублях и копейках) начисленных процентов? Если да, то какая "пьеса начинается"? (если у вас есть суммы по дням, то надо их просто сложить и получить проценты за месяц) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 08:49 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Bogdanov AndreyЕсли да, то какая "пьеса начинается"? (если у вас есть суммы по дням, то надо их просто сложить и получить проценты за месяц)При этом мы опять начинаем жевать мочало с начала. "Простое вычисление" процентов за день не работает. (работает неправильно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 09:05 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Программист-ЛюбительПри этом мы опять начинаем жевать мочало с начала. "Простое вычисление" процентов за день не работает. (работает неправильно)Как только человек сможет объяснить почему он считает это неправильным, можно будет говорить о советах. Я могу придумать несколько разных причин и для каждой из этих причин будет свое решение. В любом случае отправной точкой является описанный в договоре и юридически значинмый способ расчета - все остальное подгоняется под требования договора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 09:16 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38176139&tid=1541064]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 256ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...