Oracle中对number类型数据to_char()出现各位少0,或者值为###的处

问题描述:

在Oracle中使用to_char()函数时当number值为小数时,常常个位0不显示

比如:select to_char(0.02) from dual,结果为.02

Oracle中对number类型数据to_char()出现各位少0,或者值为###的处

改进为 select to_char(0.02,'FM0.9999') from dual,发现个位的0出来了

Oracle中对number类型数据to_char()出现各位少0,或者值为###的处

当然这里还有问题,当参数为'FM0.9999'时,如果数值大于两位数或者小数位大于四位时时转化会错,如图:

Oracle中对number类型数据to_char()出现各位少0,或者值为###的处

这个没有想到好的办法,拼命的加9,比如这样  select to_char(11.2321212,'FM9999990.99999999') from dual,一般情况下转化应该不会报错了,但是我感觉这个不是最好的办法,这样加太笨了,不知道有没有更好的办法,这个to_char()函数真操蛋,默认没参数时跟toString()一样原封不动的转多好,至于FM,把它去掉执行一下和把它加上执行一下,对比一下结果就知道它的作用了。

相关推荐