修改数据库DB2里面的DEClMAL_怎么让db2 decimal四舍五入?
展開全部
ROUND(number, num_digits)
如:ROUND(2.18, 1):將 2.18 四舍五入到一個(gè)小數(shù)位
得出的結(jié)果是2.2
若要始終進(jìn)行向62616964757a686964616fe58685e5aeb931333365643662上舍入(遠(yuǎn)離 0),使用 ROUNDUP 函數(shù)。
若要始終進(jìn)行向下舍入(朝向 0),使用 ROUNDDOWN 函數(shù)。
MONEY1:DB2首先計(jì)算23.44/5 = 4.688,DB2自動(dòng)將4.688格式化為DECIMAL(31,29),然后再round(4.688,2) = 4.69
MONEY2:DB2首先計(jì)算t.MONEY/5 = 4.68,計(jì)算結(jié)果實(shí)為4.688,但計(jì)算過程中產(chǎn)生了類型格式化,DB2自動(dòng)將結(jié)果匹配為MONEY字段類型DECIMAL(31,2)產(chǎn)生了小數(shù)位截?cái)嗟那闆r,然后再round(4.68,2) = 4.68 (單用round函數(shù)未達(dá)到預(yù)期的結(jié)果)
MONEY3:CAST(t.MONEY AS DECIMAL(31,3))將MONEY類型擴(kuò)展為保留3位小數(shù),計(jì)算CAST(t.MONEY AS DECIMAL(31,3))/5 = 4.688 ,然后再round(4.688,2) = 4.69 ?(推薦方法)
MONEY4:實(shí)際上是對(duì)MONEY3結(jié)果的再次格式化,方便將結(jié)果寫入到其它表中,所以再次將結(jié)果進(jìn)行格式化為DECIMAL(31,2)
總結(jié):在數(shù)據(jù)庫中進(jìn)行四舍五入前,防止產(chǎn)生小數(shù)截?cái)嗟那闆r,需要使用CAST先將字段類型進(jìn)行擴(kuò)展,然后再計(jì)算。 這就是為什么要使用CAST函數(shù)了!
DB2是IBM出品的一系列關(guān)系型數(shù)據(jù)庫管理系統(tǒng),分別在不同的操作系統(tǒng)平臺(tái)上服務(wù)。雖然DB2產(chǎn)品是基于UNIX的系統(tǒng)和個(gè)人計(jì)算機(jī)操作系統(tǒng),但在基于UNIX系統(tǒng)和微軟在windows系統(tǒng)下的Access方面,DB2追尋了ORACLE的數(shù)據(jù)庫產(chǎn)品。
總結(jié)
以上是生活随笔為你收集整理的修改数据库DB2里面的DEClMAL_怎么让db2 decimal四舍五入?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win11打开Excel提示Stdole
- 下一篇: 数据库系列