不求甚解

此博客为个人学习之用,如与其他作品雷同,纯属巧合。

导航

oracle存储number类型数字  如果数字小于1 如0.35就会存储.35  省略掉前面的数字0

方法1:

oracle 数据库字段值为小于1的小数时,转换到char类型处理,会丢失小数点前面的0      

例如0.35就变成了.35 2.解决办法:用to_char函数格式化数字显示      

select     to_char(0.338,'fm9999999990.00') from dual;     

结果:0.34     

这里重点要看 fm9999999999.99,表示整数部分最多10位,小数部分2位,fm表示去 掉转位字符串后前面的空格,不加fm会产生很多空格

方法2:

通过判截取number 整数部位,判断是否没有0,来函数转换

DECODE(TRUNC(number),0,REPLACE(TO_CHAR(number),'.', '0.'),TO_CHAR(number)) AS QTF,

结果:number 大于1 还是number  小于1  会用  0.   符号,替换   .符号