Oracle取数格式(FM)


记一次开发过程中遇到的数据库问题

通常在做数据运算后,会想要指定格式的数据,格式化的方法有几种:TO_CHAR、TO_NUMBER、TO_BINARY_FLOAT、TO_BINART_DOUBLE,这里主要介绍TO_CHAR的方法。

TO_CHAR中使用FM格式来格式化数据。

select to_char(0.1966666,'FM99990.00') from dual

执行结果为0.20

先不说结果不是0.19的问题,先说为什么会是这种格式。

FM99990.00代表什么意思:

①9:如果存在数字则显示数字,反之显示空格

②0:存在数字就显示数字,反之显示0

③FM:删除因为9带来的空格

FM99990.00意思是整数位5位,小数位2位

再来说说为什么结果会是0.20:

原因是因为使用格式化会引起四舍五入,如果数字大于格式化的数字,会被格式化为######的格式,解决办法如下:

select to_char(trunc(0.1966666,2),'FM99990.00') from dual

Oracle支持的格式:

Format Description
9 代表一位任意数字
. 小数点
D 本地化小数点(NLS_NUMERIC_CHARACTER)
, 千分位
G 本地化千分位(NLS_NUMERIC_CHARACTER)
S 在前部或尾部添加正负号
0 在前部或尾部添加 0
$ 在前部添加美元符号
L 添加本地化货币符号(NLS_CURRENCY)
U 添加DUAL货币符号(NLS_DUAL_CURRENCY)
C 添加ISO货币符号(NLS_ISO_CURRENCY)
B 添加空格如果整数部分为0
X 将10 进制转成16进制
V 将要格式化的值乘以10n
EEEE 科学计数法
MI 对于正数,在尾部添加空格;对于负数,在尾部添加负号
PR 对于正数,在尾部添加空格;对于负数,在尾部添加负号
RN 返回大写罗马数字
rn 返回小写罗马数字
TM 超过64位,返回科学计数法

文章作者: Cody_
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Cody_ !
评论
 上一篇
FastJSON的常用方法 FastJSON的常用方法
FastJSON是阿里巴巴内部开发的用于后台处理json格式数据的一个工具包,项目中基本使用这个工具包,如下举例FastJSON工具的常用方法: 将实体类转为json格式的字符串 JSON.toJSONString(Bean);
2019-05-07
下一篇 
SpringBoot引入Thymeleaf SpringBoot引入Thymeleaf
在距离发表上一篇博文的时间整整一个月的今天,趁着放假更一篇,证明我还存在这个世界。对于一个学习Java的童鞋,怎么能忘了学习SpringBoot这个框架呢!前段时间在学习的时候添加一个JSP页面却死活找不到页面,无奈换了Thymeleaf,
2018-04-06
  目录