小弟写了个四舍六入的函数,有两个参数,返回值是个字符,要求按一定的格式返回值
CREATE OR REPLACE Function A(p_Num   In FLOAT ,
                                   p_Digit In INTEGER )
    Return VARCHAR2 Is
    v_Result VARCHAR2(50);
如 A(123.12,1) 返回值123.1
但是A(123.96,1) 返回值却是124要求返回值是124.0

解决方案 »

  1.   

    ORACLE 里面没有有四舍六入的函数,所以自己写!!!
      

  2.   

    呵呵,原来就有啊,为什么要自己写呢?
    round (num,n) num保留n位小数(四舍五入)
    round (num) num保留整数(四舍五入)
      

  3.   

    是四舍六入发!
    ROUND(N1,N2)是四舍五入
    SELECT ROUND(12.345,2) FROM DUAL 
    12.35
    如果是四舍六入得出来得是
    12.34
      

  4.   

    应该是5舍六入吧?
    可以在你的函数中应用ROUND。
    S=power(10,-1*N2-1);
    return round(N1+S,N2);不记得是不是POWER了,就是10的多少次方那个函数。
      

  5.   

    --------------------------------------------------------------
    您好,我们是“2006中国杰出数据库工程师评选”活动组委会。
    您的帖子已经被我们转载到本次评选官方网站的“专家在线答疑”区。
    http://www.bestdba.cn/match_discussion.aspx在那里,进入本次评选复选的90位数据库工程师将与您展开积极的互动。
    一方面,他们会为您的问题提供满意的答案,
    另一方面,也邀请您为他们投上宝贵的选票。2006-7-8 ~ 2006-7-25日,每天我们将从当天参与"有奖投票"的网友
    中抽取3名幸运者,赠送由IBM提供的精美礼品一份!此外,您还可以在“专家在线答疑”区提出新的问题并参与讨论。您的帖子位于:
    http://www.bestdba.cn/match_discussion3.aspx?pointid=150&pointid2=1&pointid3=5非常感谢您对本次活动的支持!
    --------------------------------------------------------------