|
|
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
здравствуйте необходимо реализовать алгоритм начисления сумма начисления должна в базе храниться двумя знаками после запятой но если ежедневную сумму начисления буду округлять до двух знаков то , у меня будет разница небольшая как реализовать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2013, 21:04 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Бакыт, Хранить не двумя знаками? Вводить корректировку? Обратится к заказчику( насяльнику ) и спросить что делать? В банке или где там, должна быть чЕткая инструкция на эту тему. Это же бабло :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2013, 21:07 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
LecterБакыт, Хранить не двумя знаками? Вводить корректировку? Обратится к заказчику( насяльнику ) и спросить что делать? В банке или где там, должна быть чЕткая инструкция на эту тему. Это же бабло :) эффективная реализация интересует надо до копеек совпадало ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2013, 21:10 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
пока кружиться мысль создать таблицу с двумя столбцами 1 столбец number(18.2) и number(18.4) и каждый раз при insert начисления суммировать эти поля разницу этих двух полей если сумма равна 0,01 то прибавлять или отнимать смотря какое поле больше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2013, 21:14 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Бакыт, как уже сказали выше, нужно вначале понять, что происходит с этими долями копеек в окружающей Вас банковской реальности. Остаются они на счету, "прощаются" или переносятся на другой счёт, до какого знака учитываются и т.д. Получить алгоритм работы с ними. А потом уже его реализовывать. PS: Какое отношение тема имеет к разделу, пока не понимаю. Может, в Проектирование БД или Разработку ИС? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2013, 21:23 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Бакыт, увеличивать с двух на четыре знака мало, если процент сам нецелый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2013, 21:24 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
suPPLerБакыт, как уже сказали выше, нужно вначале понять, что происходит с этими долями копеек в окружающей Вас банковской реальности. Остаются они на счету, "прощаются" или переносятся на другой счёт, до какого знака учитываются и т.д. Получить алгоритм работы с ними. А потом уже его реализовывать. PS: Какое отношение тема имеет к разделу, пока не понимаю. Может, в Проектирование БД или Разработку ИС? должны оставатся на этом счету грубо говоря если человеку надо выплатить 10 руб за 3 дня я должен начислить 1 день 3.33 2 день 3.33 3 день 3,34 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2013, 21:34 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
-2-Бакыт, увеличивать с двух на четыре знака мало, если процент сам нецелый. до 6 можно чтобы еще точнее было ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2013, 21:35 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Бакытдо 6 можно чтобы еще точнее былоты не расслабляйся, если нужно ежедневно начислять проценты, чтобы сумма сошлась... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2013, 22:56 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
А что, формулу сложного процента уже отменили? Модератор: Тема перенесена из форума "Oracle". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2013, 23:20 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Бакыт, разница между чем и чем? зачем начислять ежедневно?. проценты учитываются раз в месяц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2013, 09:17 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Dmitry6237Бакыт, разница между чем и чем? зачем начислять ежедневно?. проценты учитываются раз в месяц к сожалению у нас начисление каждый день ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2013, 09:19 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Начисление процентов за один день - целая область знаний. Для простоты предположим, что нет ввода данных задним числом. Тогда проценты за дату Д должны считаться как: % от начала сделки до даты Д - % от начала сделки до даты Д-1 Далее начинаются нюансы. По некоторым видам сделок (финансовых инструментов) проценты не включают первый день, но включают последний, по некоторым - наоборот. Число дней сделки расчитывается по разным правилам. Число дней в году тоже принимает разные значений. Если баланс закрывается за предвыходной/предпразничный день, то может потребоваться насчитать за этот день проценты и за следующие выходные. Сумма основного долга может меняться. Ставка может быть плавающая, определяемая по некоторым условиям (в моей практике был кредит, где она менялась еждневно). Если допускается ввод данных задним числом, то вопрос еще резко усложняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2013, 09:24 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Забыл - проценты могут быть только с тем количеством цифр после запятой, как то определено для валюты. Десятых долей копеек не бывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2013, 09:26 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
П-ЛНачисление процентов за один день - целая область знаний. Для простоты предположим, что нет ввода данных задним числом. Тогда проценты за дату Д должны считаться как: % от начала сделки до даты Д - % от начала сделки до даты Д-1 Далее начинаются нюансы. По некоторым видам сделок (финансовых инструментов) проценты не включают первый день, но включают последний, по некоторым - наоборот. Число дней сделки расчитывается по разным правилам. Число дней в году тоже принимает разные значений. Если баланс закрывается за предвыходной/предпразничный день, то может потребоваться насчитать за этот день проценты и за следующие выходные. Сумма основного долга может меняться. Ставка может быть плавающая, определяемая по некоторым условиям (в моей практике был кредит, где она менялась еждневно). Если допускается ввод данных задним числом, то вопрос еще резко усложняется. все аспекты по начислению отпускаем кроме реализации хранения и обработки данных в этом ввиде 1 день 3.33 2 день 3.33 3 день 3,34 чтобы выплатить 10 рублей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2013, 09:36 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
П-ЛТогда проценты за дату Д должны считаться как: % от начала сделки до даты Д - % от начала сделки до даты Д-1 Расчет процентов за день сводится к двум расчетам за период. Расчет процентов за период без учета тех нюансов, что я перечислил, невозможен. Оно, конечно, хочется раз! и сразу легко посчитать. Не получается, сцуко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2013, 09:58 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Бакыт, У вас в правилах расчёта процентов ( мелким шрифтом в каком нибудь приложении к договору и правилам ) должна быть прописанна формула с учётом правил округления и капитализации, по идее при начислении процентов ежедневно с капитализацией используют формулу: {d} = trunc ( {d-1} * ( 100 + %{d-1} ) / 100 ), где {d} сумма на счёте на предыдущий день в копейках {d-1} сумма на предыдущий день %{d-1} процент для суммы на предыдущий день при этом разрядность расчёта округляемого выражения должна быть как минимум равна разрядности вычисления дневной процентной ставки + 2 разряда, причём данное вычисление нельзя делать через типы с плавающей запятой типа float ;) в такой схеме расчёта есть минус, сумма может быть меньше теоретической, расчитанной с "абслютной точностью" поэтому иногда разрядность хранения суммы остатка увеличивают, при этом оговаривают в правилах формулу приведения этой суммы к сумме в руб. коп. которая может быть снята со счёта при совершении операции... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2013, 10:05 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Бакытвсе аспекты по начислению отпускаем кроме реализации хранения и обработки данных в этом ввиде 1 день 3.33 2 день 3.33 3 день 3,34 чтобы выплатить 10 рублей Если Вы упрощаете задачу до такой степени - да, нужно сделать дополнительное поле для счета (а не проводки начисления процентов), куда заносить погрешность округления. в каждую проводку записывать округленную (результат расчета + погрешность), погрешность обновлять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2013, 10:51 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
NikolayV81У вас в правилах расчёта процентов ( мелким шрифтом в каком нибудь приложении к договору и правилам ) должна быть прописанна формула с учётом правил округления и капитализации, по идее при начислении процентов ежедневно с капитализацией используют формулу: {d} = trunc ( {d-1} * ( 100 + %{d-1} ) / 100 ), где {d} сумма на счёте на предыдущий день в копейках {d-1} сумма на предыдущий день %{d-1} процент для суммы на предыдущий день Во всех договорах, с которыми я имел дело, формула задавалась для начисления процентов за период. Чтобы ежедневные начисления за каждый день, будучи сохраненными до крпеек и потом сложенными, дали тот же результат, что и формула за период, надо считать как я предложил, или хранить ежедневную погрешность, которую тоже накапливать, как предложил Матроскин. Особенно интересно выглядят "ежедневные начисления" процентов приметодах типа 360/360 за последний день февраля 31 числа месяцев. Похоже, что ТС хочет и банковские методики влезть и упрщенность подхода не потерять. Не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2013, 11:07 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Знаком с реализацией идеи Кота Матроскина. В принципе работает. Используем ежедневные начисления и имеет место изменения задним числом. Имеется таблица где хранятся "откусанные" после округления доли с размерностью до 12 после запятой. учитываются они в контрольных точках (например раз в квартал если выплата идет раз в квартал) или в конце срока. Но это все равно не спасает в случае больших сумм и конвертаций. копейка где-то да вылезет. Здесь уже нужно мнение бухгалтера, будет ли он решать вопрос с такими косяками. Раз в год где то... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2013, 11:35 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Бакытвсе аспекты по начислению отпускаем кроме реализации хранения и обработки данных в этом ввиде 1 день 3.33 2 день 3.33 3 день 3,34 чтобы выплатить 10 рублей Надо просто понять, что проценты начисляются не каждый день, а с той периодичностью, которая требуется по договору. Таким образом расчитывается правильная сумма на полном периоде (в вашем случае - 10 рублей за 3 дня). Ну а ежедневное приращение считается простой пропорцией: [m*S/N] - [(m-1)*S/N)], где m - номер дня, S - общая сумма, N - общее число дней, квадратные скобки - округление до копеек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2013, 12:20 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
П-Л, все перечисленные Вами аспекты для постоянной ставки поддаются довольно простой реализации (для каждого пополнения вводится дата начала начисления процентов, сами проценты считаются по формуле сложного процента для каждого пополнения отдельно, если расчет ведется на заданную (будущую) дату, то результат фиксируется). В случае, когда сама ставка скачет как бешеная лошадь - да, проще начислять ежедневно, но, опять-таки, начислять можно без ограничения разрядности - это практически снимает вопросы по ошибкам округления. Округление суммы до копеек - можно либо отнести на презентацию, либо ввести отдельным полем. Подход с хранением ошибок округления - по сути то же самое, но немножко через задний проход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2013, 12:39 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousОкругление суммы до копеек - можно либо отнести на презентацию, либо ввести отдельным полем. А как в "презентации" Вы будете определять, что первые два платежа надо округлить до 33 копеек, а третий - до 34? Неокругленные суммы-то одинаковы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2013, 12:46 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Бакыт, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2013, 12:51 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Бакыт, Разницу себе на счет зачисляй. Тоже мне проблема ... ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2013, 17:15 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#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 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Текстовая формулировка договоров все равно требует какого-то трактования для перевода в формулы математической нотации и расчетные формулы в экселе, эскуеле и т.п. Обычно в депозитных договорах подробно описывается периодичность выплаты начисленных процентов (например, ежемесячно), капитализация процентов, условия досрочного отзыва депозита, возможнсоть пополнения или частичного снятия суммы. Даже сама формУла начисления процентов или ее словесное опсиание часто не приводится, поскольку она есть в каких-то базовых документах, регулирующих деятельность банка. типа так:1.3. Банк начисляет проценты на вклад в размере ____% годовых. Начисление процентов начинается со дня, следующего за днем внесения соответствующей суммы вклада, по день, предшествующий ее возврату либо списанию со счета по иным основаниям. 1.4. Проценты на сумму банковского вклада выплачиваются Вкладчику по истечении срока, указанного в п. 1.2 вместе с суммой вклада. Отдельно от вклада проценты не выплачиваются. 1.5. Вкладчик вправе получить вклад и сумму процентов по вкладу до истечения срока, указанного в п. 1.2. Однако в случае досрочного истребования вклада и суммы процентов, проценты по вкладу выплачиваются в размере, соответствующем размеру процентов, выплачиваемых Банком по вкладам _до востребования_. На момент заключения договора процентная ставка по вкладам _до востребования_ составляет ____% годовых. Более полную постановку задачи ТС не излагает. Выдавливает из себя на форум отрывочные фразы, но хочет, чтобы кто-то угадал и "все аспекты" ему по-существу расписал. Эта еще ни разу про курсовую разницу не упомянули... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 09:47 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Бакытвсе аспекты по начислению отпускаем кроме реализации хранения и обработки данных в этом ввиде 1 день 3.33 2 день 3.33 3 день 3,34 чтобы выплатить 10 рублей кстати, ваша постановка не учитывает сложный процент ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2013, 13:55 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
авторНачисление процентов за один день - целая область знаний. Для простоты предположим, что нет ввода данных задним числом. Тогда проценты за дату Д должны считаться как: % от начала сделки до даты Д - % от начала сделки до даты Д-1 Далее начинаются нюансы. По некоторым видам сделок (финансовых инструментов) проценты не включают первый день, но включают последний, по некоторым - наоборот. Число дней сделки расчитывается по разным правилам. Число дней в году тоже принимает разные значений. Если баланс закрывается за предвыходной/предпразничный день, то может потребоваться насчитать за этот день проценты и за следующие выходные. Сумма основного долга может меняться. Ставка может быть плавающая, определяемая по некоторым условиям (в моей практике был кредит, где она менялась еждневно). Подниму тему, поскольку тоже потребовалось насчитывать проценты за 1 день. Насколько я столкнулся, АБС считает именно так: % от начала сделки до даты Д - % от начала сделки до даты Д-1 А вопрос такой: как использовать эту методику при плавающей ставке? Т.е. до сегодня ставка была 3% и мы по ней правильно считали, а с сегодня - ставка 5%. Как продолжить считать правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2013, 20:48 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
У плавающей ставки свои нюансы. Плавающая ставка привязывается к какому-либо базису. LIBOR, MIBOR и т.п. Для плавающей ставки указывается +/- спреад от базиса. Для плавающей ставки должна быть задана частота ее пересчета по базовой ставке - ежедневно, ежемесячно и т.п. Технику получения данных базиса (по рыночным данных), его сохранения и пересчета плавающей ставке по рыночной опустим для простоты. В итоге плавающая ставка превращается в набор интервалов опеделенный вычисленных значений ставки. Далее сводится к задаче расчета процентов по обычной ставке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:29 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
авторВ итоге плавающая ставка превращается в набор интервалов опеделенный вычисленных значений ставки. Далее сводится к задаче расчета процентов по обычной ставке. Спасибо за ответ. Но вопрос немножечко в другом По формуле %от начала сделки до Д-% от начала сделки до Д-1 насчитываем процент за один день, например, по ставке 10% с сегодняшнего дня ставка не 10%, а 15%. Можно ли использовать ту же формулу начисления %от начала сделки до Д-% от начала сделки до Д-1 или где-то лежат грабли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:48 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
Даты Д, Д-1. Надо определить проценты за день Д-1 (интервал Д-1 ... Д) 1. сначала надо определить интервалы от начала договора до даты Д-1, на которых процентная ставка будет постоянной (и сумма основного долга тоже) посчитать на этих интервалах проценты по аналитичекой формуле проценты потом сложить проценты, получатся проценты от начала договора до Д-1 2. Тоже самое для даты Д Разница сумм 2 - 1 даст проценты за один день. Проценты по формуле можно посчитать только на интервалах, где сумма основного долга и процентная ставка постоянны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 12:35 |
|
||
|
Ежедневное начисление процентов по депозитам
|
|||
|---|---|---|---|
|
#18+
авторПроценты по формуле можно посчитать только на интервалах, где сумма основного долга и процентная ставка постоянны Грустно. А как выкручиваться в том случае, если меняется и процентная ставка, и сумма основного долга? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 13:27 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1541064]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
85ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
77ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 213ms |

| 0 / 0 |

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