在Oracle数据库中会碰到当小数小于0的时候,小数点前的0不显示,但并非所有遇到小数小于0的时候都不显示而是有特定条件
1、当小数单独显示
例:select 0.123456 from dual
显示结果为:0.123456
2、当小数与字符串进行拼接
例:select 0.123456||'小数' from dual
显示结果为:.123456小数
出现此类情况的原因是Oracle中存在隐形转换,当与字符串进行拼接时自动调用了to_char函数
解决此类问题,在进行隐形转换之前把小数进行字符串转换后再进行拼接
例:select to_char(0.123456,'fm990.0000')||'小数' from dual
显示结果为:0.1235小数
3、当小数位后希望0填充
例:0.2希望变成0.200
select to_char(0.2,'fm990.000') from dual
4、当整数前补0时
例:2希望变成002
select to_char(2,'fm000') from dual