orcale數字擷取處理

2022-02-12 13:52:14 字數 3181 閱讀 6881

一、關於number本身

declare

inumber(5,2);--整數字=3,小數字=2,總位數=5

begin

i := 205.3456;

dbms_output.put_line(i);--列印205.35

end;

結論:1、 當數字i的小數字超出nmber規定的2時,系統不會報錯,對i的處理是根據小數字四捨五入。

declare

inumber(5,2);

begin

i := 2051.3456;

dbms_output.put_line(i);--系統報錯

end;

結論:2、 當數字i的整數字超出限制的3位時,系統會報錯。

3、 整數字一定要滿足number限制,小數字可以不滿足number限制,但是會四捨五入處理。

declare

inumber(5);

begin

i := 205.5456;

dbms_output.put_line(i);--列印206

end;

結論:4、 如果number只寫了整數字,那麼i有小數字的話也不會報錯,要從當前小數點四捨五入。

declare

inumber(5,2);

begin

i := 205;

dbms_output.put_line(i);--列印205,而非205.00

end;

declare

inumber(5,2);

begin

i := 205.6;

dbms_output.put_line(i);--列印205.6,而非205.60

end;

結論:5、 如果變數i規定了小數字,但是實際賦的值沒有小數字或者小數字少於規定的,不會出錯,最後得到的值就是實際的值。

6、 如果在資料庫中number欄位規定了小數字,那麼儲存進去的值少於小數字會自動補0。

二、trunc與 round比較

trunc (89.985,2) = 89.98—小數點後2位開始

trunc (89.985) = 89—當前小數點開始,取整

trunc (89.985,-1) = 80—小數點前1位開始,截完補0

trunc (84.985,-1) = 80

trunc (405.635,-3) = 0

trunc (505.635,-3) = 0

--trunc直接截除

round(89.985,2) = 89.99—小數點後2位開始,四捨五入

round(89.985) = 90—當前小數點開始,四捨五入

round(89.985,-1) = 90—小數點前1位開始,四捨五入,然後補0

round(84.985,-1) = 80

round(405.635,-3) = 0

round(505.635,-3) = 1000

--round要對小數點後面的數字判斷,然後四捨五入

三、ceil和floor比較(取整,不涉及到四捨五入的問題)

1)正數示例

ceil(2.3355) = 3 --取整(大)

trunc(2.3355) = 2 --取整(直接截)

floor(2.3355) = 2 —取整(小)

2)負數示例

ceil(-2.3355) = -2 --取整(大)

trunc(-2.3355) = -2 --取整(直接截)

floor(-2.3355) = -3 —取整(小)

四、絕對值abs

abs(-2.3355) = 2.3355

abs(2.3355) = 2.3355

例子:結果應該是205.53,205.52才對啊!為什麼是205.53,205.53了呢?

declare

inumber(5,2);

v_truncnumber(5,2);

begin

i := 205.525888888;--這裡實際的i=205.53,因為number限制了。

selecttrunc(i,2)intov_truncfromdual;--所以這裡trunc函式中的i=205.53

dbms_output.put_line(i);

dbms_output.put_line(v_trunc);

end;

orcale數字擷取處理

一 關於number本身 declare i number 5,2 整數字 3,小數字 2,總位數 5 begin i 205.3456 dbms output.put line i 列印205.35 end 結論 1 當數字i的小數字超出nmber規定的2時,系統不會報錯,對i的處理是根據小數字四...

處理中文擷取

utf 8資料的中文截字 param string or array content 需要截字的原文 param array length 擷取的長度 param string add 末尾新增的字串 param string index 處理陣列索引 return string or array ...

中文擷取全形處理

如果乙個字串中含有中文和字母,笨的方法還是有乙個,對所有的進行全形處理,如a一位轉成2位,那樣取值擷取就不會有什麼問題了,我暫時上傳乙個笨的程式,大家看了以後不要笑我啊。include include include 列印時對字元轉換 wuhongxing void hvpsconvertchar ...