Как использовать режим округления банкира в Postgresql?

Я попытался выполнить поиск, но не могу найти реализацию режима округления Banker's в Postgresql. Я нашел этот поток, в котором была предпринята попытка создать реализацию в T-SQL https://www.sqlservercentral.com/Forums/Topic246556-8-1.aspx.

Например, Андрей Васильевский красиво приводит несколько примеров. Примеры округления банкира (результаты Math.Round в.NET):

Math.Round(3.454,2) -> 3.45
Math.Round(3.455,2) -> 3.46
Math.Round(3.445,2) -> 3.44
Math.Round(3.456,2) -> 3.46 

Исходя из этого потока PostgreSQL раунд (v числовой, s int) кажется, что нет способа настроить по умолчанию round() функция, чтобы использовать определенный режим и что он не использует режим округления банкира. Я вижу, что есть round_half_even или round_half_odd но, насколько я понимаю, это не то же самое, что округление банкира.

Кто-нибудь создал функцию, которая делает это, или есть расширение, которое можно добавить для этого?

1 ответ

Википедия и Ява говорят, что округление Banker's является почти равным.

Я не знаю, если расширение Postgres, которое реализует альтернативное округление, что удивительно. Лучшее, что я нашел, - это ответ с реализациями как функциями.

Другие вопросы по тегам