公司需要处理一些报表,需要使用百分率,保留2位小数,只用round和trunc函数都可以实现(round(_data,2) ),只是格式不是很工整,对格式要求不严谨的情况下使用round即可

个人认为比较方便的一种

select decode(n_jg,0,'0.00',trim(to_char(n_jg,'9999999.99'))) from tbl

如果只是检索,可是使用:

select trunc(CUR_SUM,2) from data_record;

将小数转化成百分比=> round(zcbj/zs*100)||'%' ==trunc((zcbj/zs),2)*100||'%'
如果想更新数据,可以使用:

update data_record set CUR_SUM=trunc(CUR_SUM,2) where REC_NO=123

方法一:使用to_char的fm格式

to_char(round(data.amount,2),'FM9999999999999999.00') as amount

不足之处是,如果数值是0的话,会显示为.00而不是0.00。
另一需要注意的是,格式中小数点左边9的个数要够多,否则查询的数字会显示为n个符号“#”。
解决方式如下:

select decode(salary,0,'0.00',(to_char(round(salary,2),'fm99999999999999.00'))) from can_do;

方法二:使用case when then else end进行各种情况的判断处理

case
when instr(to_char(data.amount), '.') < 1 then
data.amount || '.00'
when instr(to_char(data.amount), '.') + 1 = length(data.amount) then
data.amount || '0'
else
to_char(round(data.amount, 2))
end as amount_format

方法三:可以使用Oracle自带的参数设置

column amount format l9999999999.99

此方法的不足是,format中的小数点左面的9的个数要已知,否则会出现超过的数字显示为########的情况。
另外一个问题是,使用column时,设置生效是session级还是system级,需要注意。
也许某张表的数值列不总是要求所有的地方显示时,都是小数点后两位的格式,此时只能使用session级,但是有个数据库连接会话超时的问题,如果不是使用到system级,不建议使用该方法。

方法四:使用to_char+trim的方式

select trim(to_char(1234,'99999999999999.99')) from dual;

或者

select ltrim(trim(to_char(1234.525,'00000000000000.00')),'0') from dual;

此处使用了14个9或者14个0的格式,建议使用14个9的方式,方便些。方法四的不足之处是:
如果数值是0的话,转化之后为.00而不是0.00,补救措施是,decode一下。
另一需要注意的是,格式中小数点左边9或者0的个数要够多,负责查询的数字会显示为n个符号“#”。
如下:

select decode(salary,0,'0.00',trim(to_char(salary,'99999999999999.99'))) from can_do;

或者

select decode(salary,0,'0.00',ltrim(trim(to_char(salary,'00000000000000.00')),'0')) from can_do;

结论:建议使用方法四中的trim+to_char的方式或者方法一的补救之后的方式,而且最好使用小数点左边n个9的方式,不要使用0的方式,否则,要多一步trim处理。
即:

select decode(salary,0,'0.00',trim(to_char(salary,'99999999999999.99'))) from can_do;

或者

select decode(salary,0,'0.00',(to_char(round(salary,2),'fm99999999999999.00'))) from can_do;

oracle保留小数位数相关推荐

  1. oracle数据库:查询平均分时,保留小数位数

    round(AVG(CGRADE),1) 这个比较简单,大家都知道求平均数用AVG()函数 保留小数位数怎么限制,可以使用round(),'1'就是需要保留的位数

  2. 总结C#保留小数位数

    本文向大家介绍C#保留小数位,可能好多人还不了解C#保留小数位,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西. 1.简单的例子 System.Globalization.NumberF ...

  3. 微信小程序(购物车)--在wxml中设置保留小数位数

    微信小程序(购物车)–在wxml中设置保留小数位数 一.在该页面文件夹下新建一个wxs后缀的文件 var filters = {toFix: function (value) {return valu ...

  4. c语言求平均值 保留三位小数,Excel求平均值时,保留小数位数与参与求平均值的个数有关...

    在 Excel 中,求平均值用Average函数:它可分用快捷键求平均值.自动求平均值和输入公式求平均值,其中用快捷键求平均值速度最快,并且三种方法都可以对行列.任意单元格.指定区域甚至整个表格求平均 ...

  5. js取整,保留小数位数、四舍五入、科学记数法及去掉数字末尾多余的0

    1.向下取整 var num1 = 12.10345; var num2 =12.9801; var newnum1=Math.floor(num1)     //结果 12 var newnum2= ...

  6. mysql 保留小数位数

    round(x,d) x 需要被精确的数值 d 保留小数位数

  7. JavaScript保留小数位数代码

    描述:JavaScript保留小数位数代码 代码: a.toFixed(位数)

  8. 保留小数位数spit函数

    保留小数位数 1.输出print函数 System.out.printf("%.2f",3.0); 2.DecimalFormat DecimalFormat d=new Deci ...

  9. 保留小数位数、取舍方式计算

    /*** 保留小数位数且根据取舍方式* 取舍方式枚举值 4四舍五入 | 1只舍不入 | 0只入不舍*/const getFloatByType = function (num, n, t) {n = ...

  10. Python保留小数位数和保留有效数字

    round a = 1.23456789 b = round(a,3) b = 1.234 保留后的类型为 <class 'float'> 保留小数位数 a = 1.23456789 保留 ...

最新文章

  1. 演讲实录 | DevOps五大理念及其落地实践
  2. python操作系统-Python实现获取操作系统版本信息方法
  3. 高阶函数||编程范式: 命令式编程/声明式编程 || 编程范式: 面向对象编程(第一公民:对象)/函数式编程(第一公民:函数)
  4. Lesson 4.34.4 梯度下降(Gradient Descent)基本原理与手动实现随机梯度下降与小批量梯度下降
  5. Redis sorted_set实现点赞功能
  6. 发掘VS2005 SP1 (一)
  7. Hadoop常见异常及其解决方案
  8. jzoj3889-序列问题【dp,高精度】
  9. Linux-Centos安装JDK
  10. [转载] 使用Python+OpenCV实现在视频中某对象后添加图像
  11. php 验证码功能的实现原理,php验证码实现原理
  12. php与XML、XSLT、Mysql的结合运用 (转载)
  13. 并查集路径压缩_并查集专题
  14. Access 97 , Access 2k , Access 03 数据库密码破解
  15. 今天把中国建设银行APP4.2.1版iOS客户端里所有的功能都点了一遍
  16. IE取消或设置代理服务器脚本
  17. Ubuntu系统报错
  18. switch()函数 ----by xhxh
  19. 什么是DDOS流量攻击,DDoS防护手段
  20. TensorFlow ImportError: initialization failed

热门文章

  1. Scheme语言--简介
  2. [caffe] Long-term Recurrent Convolutional Networks
  3. ①读后感之《当我们谈论爱情时我们在谈论什么》┊(美)雷蒙德.卡佛
  4. 10000字拆解:五个美妆新品牌私域背后的数据和逻辑
  5. CVE-2017-0199——首个Microsoft Office RTF漏洞
  6. 如何将mp3转wav格式?
  7. 让Vim打造成强大的IDE,附_vimrc的配置和使用
  8. 防火墙多选路出口(ISP选路、策略路由、智能选路)
  9. 制度决定成败:揭秘思科顶层设计的秘密
  10. 跨期套利的四大核心逻辑