2

我试图搜索,但我似乎无法在 Postgresql 中找到银行家舍入模式的实现。我发现这个线程试图在 T-SQL https://www.sqlservercentral.com/Forums/Topic246556-8-1.aspx中创建一个实现。

例如,Andrew Vasylevskyy 很好地给出了一些银行家舍入的例子(.NET 中 Math.Round 的结果):

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 round(v numeric, s int)似乎没有办法将默认round()函数配置为使用特定模式并且它不使用银行家的舍入模式。我确实看到有 around_half_even或 around_half_odd但我的理解是它与银行家的四舍五入不同。

是否有人创建了执行此操作的功能,或者是否有可以添加的扩展来执行此操作?

4

1 回答 1

1

维基百科Java说银行家的四舍五入是四舍五入。

我不知道是否有实现替代舍入的 Postgres 扩展,这令人惊讶。我发现的最好的答案是实现为函数的这个答案

于 2018-08-02T21:30:32.403 回答