2016-06-20 31 views
1

我試圖將值格式化爲整數(刪除小數),但是當值爲小於0的負數時,它顯示-0而不是僅僅顯示-0 0.有沒有辦法讓它顯示爲0?to_char的負數整數變成了-0而不是0

select to_char(-0.09,'9,999,999,999,999,990') from dual; 
+0

'ABS'它首先? – zerkms

+0

但是要轉換的值可以是正數或負數,大於或小於0,它可以是任何數字 – iPhoneJavaDev

回答

4

TO_CHAR只是格式化數字,而不是四捨五入。所以,先使用ROUND,然後根據需要格式化。

select to_char(round(-0.09),'9,999,999,999,999,990') from dual; 
0

如果您想刪除小數點,請嘗試以下解決方案。

SELECT TO_CHAR(TRUNC(-0.09),'9,999,999,999,999,990') FROM DUAL; 

如果您想要舍入值,請使用Noel建議的解決方案。理想情況下,四捨五入的值是合乎邏輯的,而不僅僅是刪除小數。