前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >oracle中关于小数中0的格式化(55天)

oracle中关于小数中0的格式化(55天)

作者头像
jeanron100
发布2018-03-13 18:31:49
1.3K0
发布2018-03-13 18:31:49
举报
文章被收录于专栏:杨建荣的学习笔记

今天碰到一个小问题,分享一下。

oracle中输入0.1查出的时候是.1,现在想把结果格式化成varchar2,格式化成0.10,保留两位精度。

先拿大于1的数试验,没问题

代码语言:javascript
复制
SQL> select to_char(1.1,'99999999.99') from dual;
TO_CHAR(1.1,
------------
        1.10
SQL> c/1.1/.1 
  1* select to_char(.1,'99999999.99') from dual
SQL> /
TO_CHAR(.1,'
------------
         .10

--结果有问题

--貌似可以用这种方式

代码语言:javascript
复制
SQL> select to_char(.1,'999999990.99') from dual;
TO_CHAR(.1,'9
-------------
         0.10

--或者

代码语言:javascript
复制
SQL> select to_char(.1,'fm9999999990.00') from dual;
TO_CHAR(.1,'FM
--------------
0.10

--这样不可以

代码语言:javascript
复制
SQL> select to_char(.12,'fm999999.99') from dual;
TO_CHAR(.1
----------
.12

但是对于上面的两种方法,仔细琢磨一下,会发现 差别还是很大的。

代码语言:javascript
复制
SQL> select to_char(.1,'999999990.99'),length(to_char(.1,'999999990.99')) from dual;
TO_CHAR(.1,'9 LENGTH(TO_CHAR(.1,'999999990.99'))
------------- ----------------------------------
         0.10                                 13

SQL> select to_char(.1,'fm9999999990.00') ,length(to_char(.1,'fm9999999990.00')) from dual;
TO_CHAR(.1,'FM LENGTH(TO_CHAR(.1,'FM9999999990.00'))
-------------- -------------------------------------
0.10                                               4

--用符合隔开来分辨。

代码语言:javascript
复制
SQL> select '>>'||TO_CHAR(123.1,'FM99999.99')||'<<','>>'||TO_CHAR(123.1,'9999.99')||'<<' from dual;
'>>'||TO_CHAR '>>'||TO_CHA
------------- ------------
>>123.1<<     >>  123.10<<

第二种会有隐式的分隔。

所以根据具体的需要还是要区别对待,

默认保险起见还是用如下的方式

代码语言:javascript
复制
SQL> select to_char(.1,'fm9999999990.00') ,length(to_char(.1,'fm9999999990.00')) from dual;
TO_CHAR(.1,'FM LENGTH(TO_CHAR(.1,'FM9999999990.00'))
-------------- -------------------------------------
0.10                                               4
这样就可以自动去除前面的空格。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2014-04-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档