Oracle 数据库小数点前0消失情况解决
问题描述
最近在开发中遇见 Oracle 数据库这样的问题,前端使用 float 数据类型保存,数据库使用 VARCHAR2 接收,出现类似保存0.59后前面的0消失,保存为.59。
故障模拟
select to_char(0.59) from dual
解决方法
改进为 select to_char(0.59,'FM0.9999') from dual
,发现个位的0出来了。
如果数值大于两位数或者小数位大于四位时时转化会错
此时可以尝试拼命的加9,比如这样 select to_char(11.2321212,'FM9999990.99999999') from dual
,一般情况下转化应该不会报错了
最后,推荐使用 to_number
函数进行转化,尝试检验没有问题了。