问题环境:数据库ORACLE,表字段NUMBER类型
当我在存储过程中,从某表NUMBER字段取出小于1大于-1的小数时(如0.8或-0.8),总是取出舍弃了小数点前的零的结果即.8或-.8,好像只显示了有效数字,请问各路高手,用什么方法能取得完整结果即0.8或-0.8.除了小于1大于-1的小数以外其它范围的数取值正常(如-1.5,23.45),所以方法不要影响到其它数据的取值结果。
小弟先谢过各路高手了
当我在存储过程中,从某表NUMBER字段取出小于1大于-1的小数时(如0.8或-0.8),总是取出舍弃了小数点前的零的结果即.8或-.8,好像只显示了有效数字,请问各路高手,用什么方法能取得完整结果即0.8或-0.8.除了小于1大于-1的小数以外其它范围的数取值正常(如-1.5,23.45),所以方法不要影响到其它数据的取值结果。
小弟先谢过各路高手了
您好,我们是“2006中国杰出数据库工程师评选”活动组委会。
您的帖子已经被我们转载到本次评选官方网站的“专家在线答疑”区。
http://www.bestdba.cn/match_discussion.aspx在那里,进入本次评选终选的30位数据库工程师将与您展开积极的互动。他们会为您的问题提供满意的答案,此外,您还可以在“专家在线答疑”区提出新的问题并参与讨论。您的帖子位于:
http://www.bestdba.cn/match_discussion3.aspx?pointid=503&pointid2=1&pointid3=5&pcount=stc非常感谢您对本次活动的支持!
--------------------------------------------------------------
select to_char(0.8,'fm999999990.000') fm from dual
FM
--------------
0.800
1 row selected
create or replace function FillZero(p_source in NUMBER) return VARCHAR2 is
Result varchar2(255);
begin
Result := to_char(p_source);
if SubStr(Trim(Result),1,1) = '.' then
Result := '0'||Result;
elsif SubStr(Trim(Result),1,1) = '-' and SubStr(Trim(Result),2,1) = '.' then
Result := '-0'||SubStr(Trim(Result),2);
end if; return(Result);
end FillZero;
格式fm999999990.00 为什么小数点前有个0呢,要都是9呢,有什么区别
select to_char(900.00,'fm99999999.99') from dual
我这样写了,结果是900.多个点,怎么处理呢?
需要的效果是
11.00 11
11.10 11.1 (最好)
0.09 0.09
0.80 0.8 (最好)
0.00 0
为什么ORACLE的存储过程取NUMBER时里要省略了小数点前的0呢,不能灵活设置,真麻烦