是关于精度的,比如0.02精确到1位变成0.1,就是四舍五入的话第二位是四才能进,现在是要第二位不管是多少,精确后都向上进一位,不知道什么函数能实现这样的精确度

解决方案 »

  1.   

    select ceil(0.01*10)/10 from dual;
      

  2.   

    SQL> CREATE OR REPLACE FUNCTION func_ceil_number(i_num NUMBER, i_cnt NUMBER)
      2    RETURN NUMBER AS
      3    v_num NUMBER;
      4  BEGIN
      5    SELECT ceil(i_num * power(10, i_cnt)) / power(10, i_cnt)
      6      INTO v_num
      7      FROM dual;
      8    RETURN v_num;
      9  
     10  END;
     11  /
     
    Function created
     
    SQL> select func_ceil_number(0.011,2) from dual;
     
    FUNC_CEIL_NUMBER(0.011,2)
    -------------------------
                         0.02
     
    SQL> 
    i_num待处理数字 ,i_cnt需保留的小数点后的位数