常用数字格式化符
参数 | 示例 | 说明 |
---|---|---|
9 | 999.99 | 在小数点前存在非0数字显示数字(不包括数字0,如果存在数字0,作为不存在数字处理,还是显示空格),数字0或者不存在数字显示空格;在小数点后存在非0数字显示数字(不包括数字0,如果存在数字0,作为不存在数字处理,还是显示0,但是这个0是9转换过去的0,所以在使用FM是会消除这个9转换过去的0),数字0或者不存在数字显示0 |
0 | 0.00 | 存在数字显示数字,不存在显示0 |
. | 99.99 | 指定位置返回小数点 |
, | 999,999,999 | 指定位置返回逗号 |
FM | FM999,999,99.99 | 如果前后有是因为9带来的空格或者0则删除 |
$ | FM$999,999,99.00 | 数字开头返回一个美元符号 |
例:
1.select to_char(01.00,'9999.9999') from dual;
由于空格看不出来,这里使用\b表示一个空格
\b\b\b1.0000
2.select to_char(01.00,'FM9999.9999') from dual;
1.
FM消除了因为使用9而转换过来的空格和0
3.select to_char(1,'FM9999.9900') from dual;
1.0000
对比2可以看出,FM只会消除数字前后因为使用9而转换过来的0,中间因为9转换过来的0并没有消除
4.select to_char('01','FM9999.0009') from dual;
1.000
验证了3,同时说明第一个参数可以是字符串
5.select to_char(01.00,'$9999.0009') from dual;
\b\b\b$1.0000
$在数字前面,紧挨着数字,在空格后面
6.select to_char(01.00,'FM$9999.0009') from dual;
$1.000
7.select to_char(01.007,'FM$9999.00') from dual;
$1.01
如果第二个参数小数点后面,比第一个参数短,
可以看到结果进行了四舍五入
8.select to_char(trunc(01.007),'FM$9999.00') from dual;
$1.00
使用trunc(),不进行四舍五入
9.select to_char(99999901.007,'FM$9999.00') from dual;
#########
如果第二个参数小数点前面比第一个参数短,会返回#####
总结:在不使用FM的情况下,小数点后面的0和9是一样的作用。都是存在非0数字显示数字,是0或者不存在数字则显示0。