加入收藏 | 设为首页 | 会员中心 | 我要投稿 焦作站长网 (https://www.0391zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

PostGresql实现了舍入、十进制转换和百分比的使用说明

发布时间:2021-05-21 08:48:30 所属栏目:大数据 来源:互联网
导读:这篇文章主要介绍了PostGresql 实现四舍五入、小数转换、百分比的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧。 需求:两个整数

这篇文章主要介绍了PostGresql 实现四舍五入、小数转换、百分比的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧。

 

需求:两个整数相除,保留两位小数并四舍五入,完了转成百分比形式,即4/5=0.80=80%

 

1.两个整数相除:

 

idn_dw=> select 4/5;

 ?column?

----------

  0

(1 row)

 

 

 

在sql运算中,"/"意思是相除取整,这样小数部分就会被舍去。

 

2.用cast将被除数转成小数

 

idn_dw=> select cast(4 as numeric)/5;

  ?column?

------------------------

 0.80000000000000000000

(1 row)

 

 

 

也可以简化:pg中"::"是转换的意思

 

idn_dw=> select 4::numeric/5;

  ?column?

------------------------

 0.80000000000000000000

(1 row)

 

 

 

3.四舍五入,保留两位小数

 

idn_dw=> select round(cast(4 as numeric)/5,2);

 round

-------

 0.80

(1 row)

 

 

 

4.放大100,转成百分比形式

 

idn_dw=> select concat(round(4::numeric/5,2)*100,'%');

 concat

--------

 80.00%

(1 row)

 

 

 

但是,小数部分不需要,调整一下顺序

 

idn_dw=> select concat(round(4::numeric/5*100),'%');

 concat

--------

 80%

(1 row)

 

 

 

完事。

 

补充:使用postgresql的round()四舍五入函数报错

 

需求:

 

使用postgresql的round()四舍五入保留两位小数

 

报错:

 

1HINT: No function matches the given name and argument types. You might

 

解决方案:

 

使用cast函数将需要四舍五入的值转为 numeric,转为其他的类型可能会报错。

(编辑:焦作站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读