Oracle中字符串转换函数小数转法
Oracle中字符串转换函数小数转法
to_char()函数的字符串转换格式归纳如下:
to_char(var[,format]) 函数转换格式说明:
1. [format] '999' N 为转换格式数字9的个数。
若数字var位数小于或等于转换格式数字9的个数,则转换后的字符串前面补空字符,凑足转换格式的位数+1 个位数;若数字var位数大于转换格式数字9的个数,则无易做图确转换,转后的显示是N+1个 # 号
对于小数,只转换整数部分。
2.[format] '099' N为转换格式数字9和0的个数
若数字var位数小于或等于转换格式数字9+0的个数,则转换后的字符串前面一个空字符和(N-var位数-1)个0,若数字var位数大于转换格式数字9+0的个数,则无易做图确转换,转后的显示是N+1个 # 号
对于小数,只转换整数部分。
3.[format] '990'
转换规则同(1)
对于小数,只转换整数部分。
4.[format] '999.99' N1 为整数部分格式数字9的个数,N2为小数部分个数数字的个数
数字var的整数部分转换规则同(1);小数部分若数字var位数小于N2,则小数部分补0,凑足N2的个数;若小数部分位数大于N2,则按照四舍五入截取N2个位数
5.[format] '990.999'
转换规则与(4)大致相同,区别在于(5)对于整数部分为0的小数处理更完善
若:to_char(0.75,'999.99') = .75
to_char(0.75,'990.99') = 0.75
6.[format] 'FM999'
转换规则与(1)相同,但这个格式可以将转换后字符串前面的空格删除,可以说处理更完善
7.[format] 'FM990.999'
格式(5)和格式(6)的组合,小数部分不会自动添加0,因为‘FM’会把小数末尾的0当做空字符处理,删除掉
8.[format] 'FM990.990'
转换规则与(7)大致相同,不同之处在于,(8)格式中会在var小数部分位数小于转换格式小数部分时,在后面加0
[format] '990.900' 与[format] '990.990' 相同
9.[format] 'FM990.099' 或者 'FM990.999' 2个格式相同
对小数数字处理最完善的格式,可以将数字原样转换成字符串,当然整数部分位数不能小于数字var的整数部分位数
10.[format] to_char(var)
对整数数字处理最完善的格式,当然也可以用to_char(var,'FM99999999'),但是此方法有点多此一举,并且转换格式中9的个数要保证大于var的位数才能成功转换,否则转换不能成功