Q:oracle小于1的number,不显示小数点前的0?

发布时间 2023-04-14 15:08:51作者: 三年三班王小朋

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.   符号,替换   .符号