oracle查詢不顯示小數點前的0

2022-08-29 09:24:14 字數 2472 閱讀 4205

1.問題起源 

oracle 資料庫字段值為小於1的小數時,使用char型別處理,會丟失小數點前面的0 

例如0.35就變成了.35 

2.解決辦法:用to_char函式格式化數字顯示 

select     to_char(0.338,'fm9999999990.00') from dual; 

結果:0.34 

這裡重點要看 fm9999999999.99,表示整數部分最多10位,小數部分2位,fm表示去 掉轉位字串後前面的空格,不加fm,0.34前面會有空格的. 

3.with的使用 

with tmp1 as ( 

select 1 as a, 2 as b from dual 

union 

select 1 as a, 3 as b from dual 

union 

select 1 as a, 4 as b from dual 

), tmp2 as ( 

select 1 as a, 2 as b from dual 

union 

select 1 as a, 3 as b from dual 

union 

select 2 as a, 4 as b from dual 

) select tmp1.*,tmp2.* 

from tmp1 join tmp2 

on tmp1.a = tmp2.a 

作者「努力向前」

經過測試,懷疑是number轉為char時,捨去了小數點前面的0

[sql]view plain

copy

sql> select to_char(num,'999999999.999999999') from ml_test;  

to_char(num,'999999999.9999999  

------------------------------  

.421240000  

.421246543  

65432.421243240  

4.621240000  

sql> select to_char(num) from ml_test;  

to_char(num)  

----------------------------------------  

.42124  

.4212465434  

65432.42124324  

4.62124  

sql> select to_char(0.99) from dual;  

to_char(0.99)  

-------------  

.99  

--4.怎麼解決,解決方案如下

(1)[sql]view plain

copy

sql>  select to_nmber(to_char(0.99)) from dual;  

to_number(to_char(0.99))  

------------------------  

0.99  

sql>  select to_char(num,'fm999999990.999999999') from ml_test;  

to_char(num,'fm999999990.99999  

------------------------------  

0.42124  

0.421246543  

65432.42124324  

4.62124  

(2)使用case when 或 decode函式,取第一位是否為".", 補0 ,就ok了

[sql]view plain

copy

sql> select to_char(num,'999999999.999999999') from ml_test;  

to_char(num,'999999999.9999999  

------------------------------  

.421240000  

.421246543  

65432.421243240  

4.621240000  

sql> select to_char(num) from ml_test;  

to_char(num)  

----------------------------------------  

.42124  

.4212465434  

65432.42124324  

4.62124  

sql> select to_char(0.99) from dual;  

to_char(0.99)  

-------------  

.99  

Lua不顯示小數點0的部分

我的環境 unity3d 5.3.7p4 xlua版本v2.1.6 基於lua5.3 在lua中數字不區分整型或浮點型,所有都是number,當你在整除時,返回的結果中帶有小數0,比如printf 100 10 輸出10.0 注意 在lua5.1.4的控制台模式,並不會出現此問題。如果輸入100 1...

bc顯示小數點前的0

bc是強大而常用的計算工具。不過在除法運算時,如果得到的結果值小於1,得到的小數前面的0不存。本篇提供幾個常用小數點前缺0的解決方法。root 361way bc bc 1.06.95 this is free software with absolutely no warranty.for det...

報表小數點前0不顯示的問題解決

根據公司財務部的要求,需要在erp報表中的數字輸出格式需要在小數點前的0也要顯示,且如果數字是整數,那麼整數後面最好不要把0 精度 帶出來。正常情況下,無任何格式的輸出是.1 0.1 財務的會計員看多數字時會把.1 0.1 看成1,對於這種只是顯示小數點前面的0,根據網上關於oracle的格式輸出是...