当结果是postgres中的整数时,转换不会给出小数位

时间:2017-03-28 09:15:27

标签: postgresql

我是postgres的新手,目前从sql server迁移到postgres并面临一些问题。请帮助我。 只要答案是整数,我就无法转换为十进制。每当答案是整数时,
十进制转换只会给出整数部分作为答案。 例如: - 如果结果为48,则十进制转换为48,而我想要48.00。

2 个答案:

答案 0 :(得分:2)

您可以从使用numeric(4,2)开始,而不是使用小数,例如:

t=# select 48::numeric(4,2);
 numeric
---------
   48.00
(1 row)

甚至:

t=# select 48*1.00;
 ?column?
----------
    48.00
(1 row)

但请记住,您没有看到十进制的零并不意味着该数字不是十进制。例如,它仍然是浮动的:

t=# select 48::float;
 float8
--------
     48
(1 row)

答案 1 :(得分:0)

您可以使用语句

对值进行舍入
select round(48,2);

它将返回48.00。您还可以舍入到更多小数点。