LINUX.ORG.RU

Банковское округление: Math.floor, ceil, round(...)

 , , , ,


1

1

Добрый день.

Какое округление до копейки принято ЦБ РФ для банков?

Какая функция LIBC или Java SDK используется для округления до копеек?

Например, если брать 60% от 3.28 RUB = 1.9680 руб.

Есть ли стандарты для банков?

Когда довелось писать скрипты для составления внутрибанковских отчетов, оказалось, что даже внутри одного отдела могут использоваться разные типы округления, в зависимости от задач. Так что смотри ТЗ, или уточняй у заказчика.

knock ()

Какая функция LIBC или Java SDK используется для округления до копеек?

Для начала, здравые люди используют BigDecimal, соответственно, Math.floor/ceil/round уже идут сильно мимо...

BattleCoder ★★★★★ ()
Ответ на: комментарий от BattleCoder

это нужно в банке и узнавать, как у них «принято».

Окей.

Просто в 1990-е годы сам сталкивался с ситуацией, когда бухгалтерия некоторых фирм велась в IEEE754. В конце года была веселуха. У меня одноклассник для своей мамы-главбуха специально для этого погрузился в тему в начале 90-х. А потом пошёл на кафедру, занимающейся мат.методами деления больших чисел, и затем - в банковскую сферу. Сейчас, правда, ушёл оттуда.

BruteForceSSL ()
Ответ на: комментарий от BruteForceSSL

Пока норм, хватает Decimal.

Убедись что у заказчика прод работает на java не ниже 1.5 (в больших неповоротливых конторах может быть всё очень древнее), иначе схватишь много гемора с BigDecimal.

anonymous ()

Вроде в большую сторону до двух знаков после запятой, но либо ты ищешь инфу точную не тут либо в случае промаха с инфой тебя посадят на кол. Опасно. Иди на сайт центробанка и ищи там документы соотвецствующие

LINUX-ORG-RU ★★ ()
Ответ на: комментарий от BruteForceSSL

когда доли копейки полезут.

Главное правило в итоговой платёжке/выставленном счёте не должно быть дробных копеек. Но дробные копейки могут быть в расшифровке. Тоесть итоговая сумма не может иметь дробей, но итоговая сумма может состоять из дробей. Пример, выставлен счёт на 100 рублей, он может состоять из трёх пунктов по 100/3. Так же налоги не могут иметь дробей.

vtVitus ★★★★★ ()

Есть ли стандарты для банков?

Есть, они зависят от страны (принятой бухгалтерской практики). В РФ (и целом - бСССР) принято округлять с точностью до копеек вниз, отрицательных значений быть не может.

LamerOk ★★★★★ ()
Ответ на: комментарий от vtVitus

В таких случаях все нормальные люди делают очередной платеж = (итого / колво) до копейки, а последний = (итого - очередной * (колво - 1)). Эта наркомания с лишними знаками только у программистов возникает.

anonymous ()
Ответ на: комментарий от lovesan

Полтреда с чего-то решило, что оп бабло во флотах хранит. С чего вообще? Как поделить сумму на части - это резонный вопрос, и при делении целого внезапно могут возникнуть дроби, которые надо округлять.

anonymous ()
Ответ на: комментарий от Bioreactor

Ок. Я не использую для хранения float and double. Речь шла, какие функции деления использовать для подсчёта дробей.

Есть, они зависят от страны (принятой бухгалтерской практики). В РФ (и целом - бСССР) принято округлять с точностью до копеек вниз.

LamerOk А эта практика как-то закреплена законодательно?

BruteForceSSL ()