之前在Oracle数据库选数据就发现这种现象,小于1的数值选取出来后发现是前面是没有零的。开始并没有太多的在乎和关注。
今天一位同事在做程序时发现这个问题,不得不处理一下。
比如select to_char(0.05) from dual; 这样出来的值是显示.05
百度一下后,发现了几种解决方法:
1.to_char
SELECT TO_CHAR(0.05, 'FM99999990.099') FROM DUAL ;
这样出来的就是对的了0.05字符型。
如下测试:
SELECT to_char(55, 'FM99990.099'),to_char(0.05, 'FM99990.099'),to_char(1.5, 'FM99990.099'),to_char(205.555, 'FM99990.099'),to_char(250.250, 'FM99990.099') FROM DUAL;
TO_CHAR(55,'FM99990.099') TO_CHAR(0.05,'FM99990.099') TO_CHAR(1.5,'FM99990.099') TO_CHAR(205.555,'FM99990.099') TO_CHAR(250.250,'FM99990.099') 55.0 0.05 1.5 205.555 250.25
2.decode
如:select decode(substr(0.05,1,1),'.','0'||0.05,0.05) from dual;