2015-06-10 111 views
0

我想在oracle 11g中使用循環函數將此值「2167.124」轉換爲「2167.13」。問題是它轉換LIKE「2167.12」 但我需要「2167.13」。如何在oracle中四捨五入

請幫幫忙,在此先感謝

+2

那怎麼舍的作品。無論數字的價值是什麼,你總是想要「四捨五入」嗎? –

+0

四捨五入的規則是什麼? – axxis

+0

嘗試尋找Oracle中的CEIL(和相關的FLOOR)函數,儘管您可能需要首先將其轉換爲整數。或者,您可以將0.005添加到源代碼,然後添加ROUND。但是當你有「9.991」時會發生什麼,那麼你希望那個回合到「10.00」? – TenG

回答

2

如果要轉換給定值2167.12" 爲 「2167.13」 請使用

選擇小區(2167.124 * 100)/ 100從雙;

+0

感謝它解決了我的問題。但有一個困惑是,那裏,爲什麼你乘以100的價值再次劃分100?謝謝, – user3004110

1

擴大Sam的例子,乘以100有效地移動小數點兩個地方的權利,那麼你的價值變爲216712.4:

select 2167.124*100 as step1 from dual; 

    STEP1 
---------- 
    216712.4 

你再調用ceil上,找到「大於或等於ñ的最小整數」:

select ceil(216712.4) as step2 from dual; 

    STEP2 
---------- 
    216713 

然後除以100有效地移動小數點後面的兩個相同的地方左側:

select 216713/100 as step3 from dual; 

    STEP3 
---------- 
    2167.13 

把三步連成一片的語句獲取:

select ceil(2167.124*100)/100 as result from dual; 

    RESULT 
---------- 
    2167.13