我想在oracle 11g中使用循環函數將此值「2167.124」轉換爲「2167.13」。問題是它轉換LIKE「2167.12」 但我需要「2167.13」。如何在oracle中四捨五入
請幫幫忙,在此先感謝
我想在oracle 11g中使用循環函數將此值「2167.124」轉換爲「2167.13」。問題是它轉換LIKE「2167.12」 但我需要「2167.13」。如何在oracle中四捨五入
請幫幫忙,在此先感謝
如果要轉換給定值2167.12" 爲 「2167.13」 請使用
選擇小區(2167.124 * 100)/ 100從雙;
感謝它解決了我的問題。但有一個困惑是,那裏,爲什麼你乘以100的價值再次劃分100?謝謝, – user3004110
擴大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
那怎麼舍的作品。無論數字的價值是什麼,你總是想要「四捨五入」嗎? –
四捨五入的規則是什麼? – axxis
嘗試尋找Oracle中的CEIL(和相關的FLOOR)函數,儘管您可能需要首先將其轉換爲整數。或者,您可以將0.005添加到源代碼,然後添加ROUND。但是當你有「9.991」時會發生什麼,那麼你希望那個回合到「10.00」? – TenG