Oracle資料顯示保留小數點的問題

來源:互聯網
上載者:User

因為工作需要要寫一個保留小數點的方法或SQL語句,number類型的小數,如果是0.5或-0.5,列印的時候就會顯示成.5或-.5,顯然不是我想要的,自己就簡單的寫了一個,功能可以實現了,效率不高,高手們多多指教。

  1. DECLARE   
  2.   NUM1   NUMBER := 1/4; -- 要進行舍入的數字   
  3.   NUM2   NUMBER; -- 中間變數   
  4.   IND    NUMBER; -- 小數點位置   
  5.   PARAM  NUMBER := 3; --精度,保留的小數位元,由於number精度限制,最大精度為38位   
  6.   RESULT VARCHAR2(10000);   
  7.   
  8. BEGIN   
  9.   NUM2   := ROUND(NUM1, PARAM); -- 對入參數字按照精度進行四捨五入   
  10.   IND    := INSTR(NUM2, '.');   -- 獲得‘.’的位置   
  11.   RESULT := NUM2;                  
  12.   IF IND = 0 THEN               -- 沒有找到小數點,說明是整數   
  13.     RESULT := RESULT || '.';    -- 在後面補個小數點   
  14.     RESULT := RPAD(RESULT, LENGTH(RESULT) + PARAM, '0'); -- 按照精度對結果進行補0操作   
  15.   ELSE                          -- 找到小數點   
  16.     -- 小數的時候   
  17.     IF NUM2 < 1 THEN                
  18.       -- 小於1的小數,要對小於1的小數進行首位補零   
  19.       IF NUM2 > 0 THEN   
  20.         RESULT := '0' || NUM2;   
  21.       ELSIF (-1 < NUM2 AND NUM2 < 0) THEN   
  22.         RESULT := '-0' || SUBSTR(RESULT, IND);   
  23.       ELSE   
  24.         RESULT := NUM2;   
  25.       END IF;   
  26.     END IF;   
  27.     IND    := INSTR(RESULT, '.');   
  28.     RESULT := RPAD(RESULT, IND + PARAM, '0');   
  29.   END IF;   
  30.   DBMS_OUTPUT.put_line(RESULT);   
  31. END;   
  32. /  

更多Oracle相關資訊見Oracle 專題頁面 http://www.bkjia.com/topicnews.aspx?tid=12

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.