Posted on 2009-05-04 14:16
Prayer 閱讀(4820)
評論(1) 編輯 收藏 引用 所屬分類:
DB2
20071011公司的編程中,和我的同事討論了DB2的DECIMAL字段屬性的用法。
公司創(chuàng)建表的時用的是DECIMAL(13,2),我和同事認為它為13個整數(shù)位數(shù)+2為有效數(shù)字,因為在打印銀行交易的FORM時遇到了難題。輸出和建表的長度不一樣,我們以為它會打印出15為長度(13位整數(shù)+2位有效數(shù)字),但是卻遇到了難題。
經(jīng)過我們的近一個小時的討論與時間,可以看出,在DECIMAL(13,2)的數(shù)據(jù)庫的插入時,我們首先輸入的數(shù)據(jù)為1234567890123.99,數(shù)據(jù)庫報出錯誤:長度超出了規(guī)定長度。
我們在此基礎(chǔ)上有刪除一個整數(shù)位,123456789012.99,結(jié)果還是報長度超出了范圍,經(jīng)過我們的查找資料,得到了一初步的認證,就是整數(shù)位+小數(shù)位一共為13位,因為在1234567890.99的數(shù)據(jù)插入中結(jié)果成功。
于是我們又試驗了1234567890.999,結(jié)果顯示插入成功,打開數(shù)據(jù)庫中發(fā)現(xiàn)了插入的數(shù)據(jù)在數(shù)據(jù)庫中保存的數(shù)據(jù)為1234567890.99將第三位小數(shù)位給截斷。
我們得到了最后的結(jié)論,在DECIMAL(m,n)的設(shè)置中,整數(shù)的位數(shù)不能大于(m-n),但小數(shù)位可以大于n,但會從大于n的有效位開始截斷。