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