oracle to_char(小數(shù)) 默認(rèn)如此 oracle就是這樣的
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序設(shè)計、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了墾利免費(fèi)建站歡迎大家使用!
to_char用法本身也是需要格式化的,只不過我們平時對于普通字符都是直接to_char而已,對于時間,錢幣等都是需要格式化的,對于小數(shù)不格式化就是沒有前面的零的,可以這樣格式化
select to_char(0.1,'fm9999990.9999') from dual;
直接將欄位數(shù)據(jù)類型定義為number(18,4)
例如:
create table test1
(a number(18,4));
insert into test1
values(0.03125 );
insert into test1
values(0.12 );
insert into test1
values(1.12 );
select * from test1;
結(jié)果:
1 0.0313
2 0.1200
3 1.1200
oracle 關(guān)于數(shù)字存儲的主要有下面幾個:
NUMBER(P,S) 數(shù)字類型 P為整數(shù)位,S為小數(shù)位
DECIMAL(P,S) 數(shù)字類型 P為整數(shù)位,S為小數(shù)位
INTEGER 整數(shù)類型 小的整數(shù)
FLOAT 浮點數(shù)類型 NUMBER(38),雙精度
REAL 實數(shù)類型 NUMBER(63),精度更高
還是number型。
參考以下定義:
number
(
precision,
scale)
precision表示數(shù)字中的有效位。如果沒有指定precision的話,oracle將使用38作為精度。
scale表示數(shù)字小數(shù)點右邊的位數(shù),scale默認(rèn)設(shè)置為0.
如果把scale設(shè)成負(fù)數(shù),oracle將把該數(shù)字取舍到小數(shù)點左邊的指定位數(shù)。
數(shù)據(jù)類型定義一下,例如number(p.s)
數(shù)據(jù)的總位數(shù)是p
對s分2種情況:
1. s0
精確到小數(shù)點右邊s位,并四舍五入。然后檢驗有效數(shù)位是否=p;如果sp,小數(shù)點右邊至少有s-p個0填充。
2. s0
精確到小數(shù)點左邊s位,并四舍五入。然后檢驗有效數(shù)位是否=p+|s|
123.2564 NUMBER 123.2564
1234.9876 NUMBER(6,2) 1234.99
12345.12345 NUMBER(6,2) Error
1234.9876 NUMBER(6) 1235
12345.345 NUMBER(5,-2) 12300
1234567 NUMBER(5,-2) 1234600
12345678 NUMBER(5,-2) Error
123456789 NUMBER(5,-4) 123460000
1234567890 NUMBER(5,-4) Error
12345.58 NUMBER(*, 1) 12345.6
0.1 NUMBER(4,5) Error
0.01234567 NUMBER(4,5) 0.01235
0.09999 NUMBER(4,5) 0.09999
number(10,2)就是總共10位數(shù),并精確到小數(shù)點后兩位。希望對你有幫助。
使用number
NUMBER
用于存儲零、正數(shù)、定長負(fù)數(shù)以及浮點數(shù)。NUMBER
數(shù)據(jù)類型可以以
NUMBER(P,S)的
形式來定義數(shù)字的精度和范圍。
這里:p
表示精度
(1-38),它表示存儲在列中數(shù)
字的總長度是
p
位:
s
表示范圍,它表示小數(shù)點后的位數(shù)。該取值范圍可以從-84
到
127
。例如:
CREATE
TABLE
test
(name
number(5))
使用精度
5
來定義一個正數(shù)(如
12345)。
CREATE
TABLE
test
(name
number(5,2))
使用精度
5
和范圍
2
來定義一個數(shù)字。符合這種數(shù)據(jù)類型的數(shù)字值如
123.45
和
12.34