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的格式輸出是...