declare 
  i number;
begin
  i := 5.2325325325234;
  dbms_output.put_line(to_char(i));
end;结果为 5.2325325325234我在pl/sql developer测试完了就是这样的结果,直接输出数据。也没有需要特别的说明数据类型。下面的一个测试,我说明了 i的精度和有效数字长度,得到的结果还是有些变化的。
declare   i number(8,2);
begin  i := 5.2325325325234;
  dbms_output.put_line(to_char(i));
end;
结果为 5.23至于楼主希望得到总结好的理论,我不是很熟悉,但是看上面两个测试也可以想出一些规律吧?声明为number,不带长度说明,可能就可以带小数位,不限制长度;如果加上有效为数和精度说明,系统自动转换,去掉多余的长度
——具体是不是这样,召唤达人来指点