PostgreSQL round(v numeric,s int)

前端之家收集整理的这篇文章主要介绍了PostgreSQL round(v numeric,s int)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Postgres round(v numeric,s int)使用哪个 method

>回合一半
>减半
>距离零点一半
>将一半归零
>一半到一半
>圆半到奇数

我正在寻找文档参考.

对不起,我在文档中没有看到任何暗示,但是 a look at the code表示它使用的是距离零的一半;随身携带始终添加到数字中,从而增加变量的绝对值,无论其符号是什么.一个简单的实验(psql 9.1)证实了这一点:
test=# CREATE TABLE nvals (v numeric(5,2));
CREATE TABLE
test=# INSERT INTO nvals (v) VALUES (-0.25),(-0.15),(-0.05),(0.05),(0.15),(0.25);
INSERT 0 6
test=# SELECT v,round(v,1) FROM nvals;
   v   | round 
-------+-------
 -0.25 |  -0.3
 -0.15 |  -0.2
 -0.05 |  -0.1
  0.05 |   0.1
  0.15 |   0.2
  0.25 |   0.3
(6 rows)

有趣的是,因为round(v dp)使用了一半的偶数:

test=# create table vals (v double precision);
CREATE TABLE
test=# insert into vals (v) VALUES (-2.5),(-1.5),(-0.5),(0.5),(1.5),(2.5);
INSERT 0 6
test=# select v,round(v) from vals;
  v   | round 
------+-------
 -2.5 |    -2
 -1.5 |    -2
 -0.5 |    -0
  0.5 |     0
  1.5 |     2
  2.5 |     2
(6 rows)

后一种行为几乎肯定是依赖于平台的,因为它看起来像it uses rint(3) under the hood.

如有必要,您可以随时实施不同的舍入方案.有关示例,请参见Tometzky’s answer.

猜你在找的Postgre SQL相关文章