oracle 函数to_char(数据,'FM999,999,999,999,990.00') 格式化数据

 

遇到了oracle 取数格式问题,这里记一下

我们通常在做数据算数后,会想要让它显示自己需要的格式,这里介绍一种简单的方式

to_char(数据,'FM999,999,999,999,990.00')

例子:

select to_char(0.59/1.00*100,'FM999,999,999,999,990.00')||'%' from dual 

结果为:59.00%

下面是详细介绍(copy的)

select  to_char( 0.596 , ' FM999,999,999,990.00 ' from  dual

  它的执行结果如下:

  怎样使查出来类似0.60的小数带0,答案是:使用如上的格式即

  ①其9代表:如果存在数字则显示数字,不存在则显示空格

  ②其0代表:如果存在数字则显示数字,不存在则显示0,即占位符。

  ③其FM代表:删除如果是因9带来的空格,则删除之

  具体区别可以见

  Selec length(to_char( 1.00 , ' 999,999,999,999,999,999,999,990.00 ' )), length(to_char( 1.00 , ' FM999,999,999,999,999,999,999,990.00 ' ))  from  dual

  其结果是:

  ④四舍五入:0.596变成了0.60不知道大家注意到了没有。如果不要四舍五入,则需要trunc下,具体如下:

select  to_char(trunc( 0.596 , 2 ), ' FM999,999,999,999,990.00 ' from  dual

  其结果是0.59

  ⑤解决列表100,000,000的情况

select  to_char( 10000000000 , ' FM999,999,999,990.00 ' from  dual

  上面的功能适用于固定小数点格式。而如果没有小数点了?

  ⑥解决整数后面多个点的情况

select  to_char( 10000000000 , ' FM999,999,999,990.99 ' from  dual

  会出现类似的情况:10,000,000,000.

  此类的解决方案则需要进行先判断词数据是否包含.(点的情况)

  如果有点则 instr()下

  否则直接to_cahr()

  此功能适用于:页面展示不出0(类的自定义的属性,A类不存在属性b,通过sqlMap查询赋值的情况下适合,正常情况下不需要使用),前后台列表展示不显示0,前后台列表的10,000,000,000格式。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值