Oracle 小於1的小數丟失整數0

2021-10-06 22:42:13 字數 463 閱讀 1005

問題:oracle查詢 當小數小於1是,使用to_char型別轉換會丟失整數0。例:0.33變為.33

仍然用to_char函式對資料進行格式化轉換:

select to_char(0.567,『fm9999999990.00』) from dual

最終查詢結果為:0.57

注意:這裡是四捨五入保留兩位小數。fm格式是為去點字串前的控制。

針對方法1可能會出現整數也會強制轉換為帶小數點,資料不合理。由此

使用 decode解決:

select decode(substr(num, 1, 1), 『.』, 『0』 || num, num) from tab

其實我們最終只是要在丟失0 後的資料補上0,但這類資料有個特性 第一位為

*. *小數點,只需要在這類資料前強制補全0

小數取整的方式

static double ceil double a 天花板函式,返回大於等於a的最小整數 但是以浮點數形式儲存 static double floor double a 地板函式,返回小於等於a的最大整數 但是以浮點數形式儲存 static double rint double a 四捨五入函式...

oracle 小數點前零丟失的問題

1.問題起源 oracle 資料庫字段值為小於1的小數時,使用char型別處理,會丟失小數點前面的0 例如0.35就變成了.35 2.解決辦法 用to char函式格式化數字顯示 select to char 0.338,fm9999999990.00 from dual 結果 0.34 這裡重點要...

oracle 小數點前零丟失的問題

1.問題起源 oracle 資料庫字段值為小於1的小數時,使用char型別處理,會丟失小數點前面的0 例如0.35就變成了.35 2.解決辦法 用to char函式格式化數字顯示 select to char 0.338,fm9999999990.00 from dual 結果 0.34 這裡重點要...