一、關於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 ...