to_char(欄位名,'999,999,999.99'
)
使用to_char的方式,有兩個弊端,也是需要注意的地方:
1>整數部分的9要寫的足夠多,否則會錯誤顯示,如下:
錯誤:select to_char(199999999.1256,'9,999.99') from dual --顯示結果:#########
正確:select to_char(199999999.1256,'999,999,999.99') from dual --顯示結果:199,999,999.13
2>對0這種情況要單獨處理,當為0時,會顯示為.00,而非0.00。如下:
錯誤:select to_char(0,'9,99.99') from dual --顯示結果:.00
正確:select decode(0,0,'0.00',to_char(199999999.1256,'999,999,999.99')) from dual --顯示結果:0.00
一、round(四捨五入):round( number, [ decimal_places ] )
描述 : 傳回乙個數值,該數值是按照指定的小數字元數進行四捨五入運算的結果。
select round( number, [ decimal_places ] ) from dual
引數:number : 欲處理之數值
decimal_places : 四捨五入 , 小數取幾位 ( 預設為 0 )
示例 :
select round(123.456, 0) from dual; 回傳 123
select round(123.456, 1) from dual; 回傳 123.5
select round(123.456, 2) from dual; 回傳 123.46
select round(123.456, 3) from dual; 回傳 123.456
select round(-123.456, 2) from dual; 回傳 -123.46
當然,保留兩位小數的處理,在格式要求的不是很嚴格的條件下,也可以用round函式。
在保留小數這個問題上round函式有以下弊端:
①當為整數時,無論如何寫,最終返回的都是整數,如下:
select round(199.000,2) from dual --199
②返回值中不會自帶千分符,如下:
select round(199999.2356,2) from dual --199999.24
二、decode:decode(input_value,value,result[,value,result…][,default_result])
描述:decode函式相當於一條件語句(if).它將輸入數值與函式中的引數列表相比較,根據輸入值返回乙個對應值。函式的引數列表是由若干數值及其對應結果值組成的若干序偶形式。當然,如果未能與任何乙個實參序偶匹配成功,則函式也有預設的返回值。區別於sql的其它函式,decode函式還能識別和操作空值.
decode(input_value,value,result[,value,result…][,default_result]);
引數:input_value 試圖處理的數值。
value 是一組成序偶的數值。如果輸入數值與之匹配成功,則相應的結果將被返回。對應乙個空的返回值,可用關鍵字null於之對應。
result 是一組成序偶的結果值。
default_result 未能與任何一序偶匹配成功時,函式返回的預設值。
示例:select checkup_type,
decode(blood_test_flag,』y』,』yes』,』n』,』no』,null,』none』,』invalid』)
from checkup;
Oracle 之 保留兩位小數
專案需要使用百分率,保留2位小數,只用 round 和 trunc 函式都可以實現 round data,2 只是格式不是很工整,對格式要求不嚴謹的情況下使用 round 即可。以下是比較方便的一種 select decode n jg,0,0.00 trim to char n jg,999999...
保留兩位小數
1.只要求保留n位不四捨5入 float f 0.55555f int i int f 100 f float i 1.0 100 2.保留n位,四捨五入 decimal d decimal.round decimal.parse 0.55555 2 3.保留n位四捨五入 math.round 0....
保留兩位小數
num 10.4567 第一種 利用round 對浮點數進行四捨五入 echo round num,2 第二種 利用sprintf格式化字串 format num sprintf 2f num echo format num 第三種 利用千位分組來格式化數字的函式number format echo...