近期在使用oracle to_char函数处理浮点数时发现有坑,这里做个小结:

网上可以找到关于to_char中使用fm9990.0099中的相关解释:
  • 0表示:如果参数(double或者float类型)存在数字就显示数字,不存在数字就显示0
  • 9表示:如果参数(double或者float类型)存在数字就显示数字,不存在数字就显示空格
  • FM表示:将9带来的空格删除

下面通过具体代码进行相关验证
--SQL示例代码:

With Tmp As
(Select 2312320.012 n From dual Union All
Select 0.012322 n From dual Union All
Select 0.012564 n From dual Union All
Select -0.012 n From dual Union All
Select -10023 n From dual Union All
Select 8989898 n From dual)
Select --全部为 9
To_Char(t.n, '9999999999.9999999') all_9,
--全部为 9 同时使用 FM
To_Char(t.n, 'FM999999999999999.9999999') all_FM9,
--全部为 0
To_Char(t.n, '000000000.0000000') all_0,
--全部为 0 同时使用 FM
To_Char(t.n, 'FM000000000.0000000') all_FM0,
--个位开始向右使用 0 向左使用9
To_Char(t.n, '9999999990.0000000') some9one0,
--个位开始向右使用 0 向左使用9 同时使用FM
To_Char(t.n, 'FM999999999999990.00000000') some9one0P0_FM,
--个位使用 0 同时使用FM
To_Char(t.n, 'FM999999999999990.99999999') some9one0P9_FM,
--个位使用 0 前四位小数位使用 0 同时使用FM
To_Char(t.n, 'FM999999999999990.0000999') some9one0P09_FM
From tmp t;
--执行结果:

--总结:

1、9在不同的地方可能会使用不同的占位符:整数位使用空格;小数位有有效数时使用0,无有效数时使用空格;

2、9对于绝对值小于1的小数的个位会处理成空格

3、FM只能用来删除9所产生的多余的占位符(空格或0),对于0产生的占位符无效。

--思考:

四舍五入可以通过控制9或0的个数实现。

oracle to_Char fm 函数的更多相关文章

  1. Oracle to_char格式化函数

    转:http://www.cnblogs.com/reborter/archive/2008/11/28/1343195.html Postgres 格式化函数提供一套有效的工具用于把各种数据类型(日 ...

  2. Oracle to_char格式化函数 显示毫秒

    racle如何显示毫秒   date类型只能精确到秒,要想精确到毫秒,需要使用timestamp类型.   应用举例:   举例1:   select to_char(systimestamp,'yy ...

  3. ORACLE TO_CHAR,TO_DATE函数格式说明

    YEAR,年份的英文全称 YYYY:四位表示的年份 YYY,YY,Y:年份的最后三位.两位或一位,缺省为当前世纪 MM:01~12的月份编号 MONTH:九个字符表示的月份,右边用空格填补 MON:三 ...

  4. Oracle to_char函数的使用方法

    Oracle to_char函数的功能是将数值型或者日期型转化为字符型,下面就为您详细介绍Oracle to_char函数的使用,希望对您能有所帮助. Postgres 格式化函数提供一套有效的工具用 ...

  5. Oracle to_char()函数的使用细则

    Oracle to_char()函数的使用细则,学习连接 http://www.cnblogs.com/reborter/archive/2008/11/28/1343195.html

  6. Oracle数据库中 to_date()与to_char()函数的用法

    to_date() ,to_char()与24小时制表示法及mm分钟的显示: 一.在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用“yyyy-MM-dd HH: ...

  7. Oracle to_char的用法

    The following are number examples for the to_char function. to_char(1210.73, '9999.9') would return ...

  8. Oracle日期时间函数大全

    ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 yyy three digits ...

  9. Oracle nvl(),nvl2()函数介绍

    NVL函数 Oracle/PLSQL中的一个函数. 格式为: NVL( string1, replace_with) 功能:如果string1为NULL,则NVL函数返回replace_with的值, ...

随机推荐

  1. 【leetcode_easy】541. Reverse String II

    problem 541. Reverse String II 题意: 给定一个字符串,每隔k个字符翻转这k个字符,剩余的小于k个则全部翻转,否则还是只翻转剩余的前k个字符. solution1: cl ...

  2. EasyUI datagrid列隐藏与显示

    隐藏DataGrid某一列 $("#datagrid_view").datagrid('hideColumn', filed); 2. 显示DataGrid隐藏的某一列 $(&qu ...

  3. ubuntu16.04 下通过rc.d(rc.local)实现开机启动(未登录)anydesk

    先编辑anydesk-X.X.X/init/anydesk文件,将"DAEMON=//usr/bin$NAME"改成"DAEMON=/XXX/anydesk-5.1.1/ ...

  4. Had I not seen the Sun(如果我不曾见过太阳)

    Had I not seen the Sun by Emily Dickinson Had I not seen the Sun I could have borne the shade But Li ...

  5. 【计算机】DMA原理2

    DMA (直接存储器访问) DMA(Direct Memory Access,直接内存存取) 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载.否则,C ...

  6. 【VS开发】MP4与H.264

    一.MP4格式基本概念 MP4格式对应标准MPEG-4标准(ISO/IEC14496) 二.MP4封装格式核心概念 1  MP4封装格式对应标准为 ISO/IEC 14496-12(信息技术 视听对象 ...

  7. Guava源码阅读-collect-Multiset

    package com.google.common.collect; 我们在进行字符统计时,同常采用的方法就是: String[] text=new String[]{"the weathe ...

  8. jquery设置input不可编辑,背景变灰,鼠标变禁止

    先看效果 $("#id").attr("onfocus", "this.blur()"); $("#id").css(& ...

  9. Ural 1298 Knight 题解

    目录 Ural 1298 Knight 题解 题意 题解 程序 Ural 1298 Knight 题解 题意 给定一个\(n\times n(1\le n\le8)\)的国际象棋棋盘和一个骑士(基本上 ...

  10. 4.Linux系统命令及其使用详解

    运维工程师必会的109个Linux命令   文件管理basename:从文件名中去掉路径和扩展名 cat:把档案串连接后传到基本输出(屏幕或加 > filename 到另一个档案)cd:切换目录 ...