LINUX.ORG.RU

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

 , , , ,


1

1

Добрый день.

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

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

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

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

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

Не знаю. Из того, что я видел, банки часто используют четыре знака после точки для денег.

hateyoufeel ★★★★★
()

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

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

Используй BigDecimal!

Спасибо.

«The java.math.BigDecimal in Java's equivalent is decimal.Decimal in Python. You can even go through the documentation for more. mpmath is a pure-Python library for multi-precision floating-point arithmetic.»

BruteForceSSL
() автор топика

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

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

BattleCoder ★★★★★
()

Спроси у аналитика, он тебе скажет. А то ты там сейчас понапишешь, будут потом тебя сношать в опердень, когда копейка не сойдётся.

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

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

Окей.

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

BruteForceSSL
() автор топика

Правильно - брать проценты себе на счет.

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

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

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

anonymous
()

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

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

1.5 - это то, что было до JRE6. Нумерацию там сменили.

anonymous
()

Целочисленная арифметика используется для денег

fsb4000 ★★★★★
()

всё зависит от. Бывают и 100/3 цены (чтоб 100/3 + 100/3 + 100/3 было 100), и тут же рядом нормальные копейки идут.

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

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

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

vtVitus ★★★★★
()

деньги храни в копейках.

в крайнем случае в BigDecimal, если много хитрых расчетов

float - ни в коем случае. разве что только для производных от денег вещей (статистика, рисование графиков, итд)

lovesan ★★
()

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

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

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

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

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

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

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

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

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

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

BruteForceSSL
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.