Как использовать режим округления банкира в 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, которое реализует альтернативное округление, что удивительно. Лучшее, что я нашел, - это ответ с реализациями как функциями.