如何平均四舍五入到PostgreSQL的2位小数
1个回答
2016-01-24 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517199
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
ostgreSQL没有定义round(double precision, integer)。至于原因, 嘘声解释了一轮,需要一个精确的版本仅适用于numeric。
regress=> SELECT round( float8 '3.1415927', 2 );
ERROR: function round(double precision, integer) does not exist
regress=> \df *round*
List of functions
Schema | Name | Result data type | Argument data types | Type
------------+--------+------------------+---------------------+--------
pg_catalog | dround | double precision | double precision | normal
pg_catalog | round | double precision | double precision | normal
pg_catalog | round | numeric | numeric | normal
pg_catalog | round | numeric | numeric, integer | normal
(4 rows)
regress=> SELECT round( CAST(float8 '3.1415927' as numeric), 2);
round
-------
3.14
(1 row)
(在上面的,请注意float8仅仅是一个速记别名double precision。你可以看到,PostgreSQL的正在扩大它在输出)。 你必须转换值被舍入到numeric两种表单的round。只是追加::numeric对于速记投,像round(val::numeric,2)。 如果你格式化显示给穿上'round。使用to_char(参见:本手册中的数据类型格式化函数),它可以让你指定格式,并给你一个text这是不会受到任何的怪事你的客户端端语言的结果可能跟numeric值。例如:
regress=> SELECT to_char(float8 '3.1415927', 'FM999999999.00');
to_char
---------------
3.14
(1 row)
to_char将数字四舍五入为你作为格式化的一部分。该FM前缀告诉to_char你不想与前导空格任何填充。
regress=> SELECT round( float8 '3.1415927', 2 );
ERROR: function round(double precision, integer) does not exist
regress=> \df *round*
List of functions
Schema | Name | Result data type | Argument data types | Type
------------+--------+------------------+---------------------+--------
pg_catalog | dround | double precision | double precision | normal
pg_catalog | round | double precision | double precision | normal
pg_catalog | round | numeric | numeric | normal
pg_catalog | round | numeric | numeric, integer | normal
(4 rows)
regress=> SELECT round( CAST(float8 '3.1415927' as numeric), 2);
round
-------
3.14
(1 row)
(在上面的,请注意float8仅仅是一个速记别名double precision。你可以看到,PostgreSQL的正在扩大它在输出)。 你必须转换值被舍入到numeric两种表单的round。只是追加::numeric对于速记投,像round(val::numeric,2)。 如果你格式化显示给穿上'round。使用to_char(参见:本手册中的数据类型格式化函数),它可以让你指定格式,并给你一个text这是不会受到任何的怪事你的客户端端语言的结果可能跟numeric值。例如:
regress=> SELECT to_char(float8 '3.1415927', 'FM999999999.00');
to_char
---------------
3.14
(1 row)
to_char将数字四舍五入为你作为格式化的一部分。该FM前缀告诉to_char你不想与前导空格任何填充。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询