我在表0.0821中有一個值,我想將它轉換爲8.21。Oracle:十進制和四捨五入
我的SQL查詢to_char(round(prdll_yr2.rate_chg_pct_qty *100),'9.99')
但它返回8.00而不是8.21。
我在表0.0821中有一個值,我想將它轉換爲8.21。Oracle:十進制和四捨五入
我的SQL查詢to_char(round(prdll_yr2.rate_chg_pct_qty *100),'9.99')
但它返回8.00而不是8.21。
to_char(round(0.0821 *100,2),'9.99')
to_char(round(prdll_yr2.rate_chg_pct_qty *100,2),'9.99')
你缺少的小數位數,以顯示對圓...這將default to 0 if omitted
或爲例:
select to_char(round(0.0821 *100,2),'9.99') from dual;
結果: 8.21
select to_char(round(0.0821 *100),'9.99') from dual;
結果於:8.00
---------------------------- GIVEN NEW INFORMATION:------- --------------------
to_char(round(0.0821 *100,2),'9,999.99')
調整9,999.99 format爲等於所允許在數據庫中的標度和精度。所以如果你的值是Numeric(9,5),這意味着4個前導數字後跟5個小數位。既然你乘以100,你可以得到的最大值是小數點前的6個位置,所以999,999.99的格式和第三位小數將是「舍入」
的比例和精度,當我選擇to_char(round(0.0821 * 100,2),' 9.99')來自雙重;結果以以下格式顯示:##### – user1683763 2013-05-01 20:07:35
@ user1683763 - 當您運行完全查詢時,或者當您使用表格數據時?你有一個值> = 0.1?這將轉換爲10.0(或更高),這是數字格式太多的數字,並將顯示爲哈希(由SQL * Plus)。如果您需要處理這些數據,請根據最大可能值將其設置爲「99.99」或「999.99」等。 – 2013-05-01 21:14:53
在這種情況下,您不需要調用'ROUND',因爲您的'TO_CHAR'格式無論如何都可以。 – 2013-05-02 08:02:45
只需乘以100就可以得到值prdll_yr2.rate_chg_pct_qty * 100 – user1683763 2013-05-01 19:07:08
好。但是,如果你的值是0.08211你想從查詢中得到什麼結果? 8.21還是8.211?你還想要一個數字數據類型還是一個字符? – xQbert 2013-05-01 19:39:10
我想返回8.21 – user1683763 2013-05-01 21:16:07