IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置:首頁數(shù)據(jù)庫Oracle → Oracle的Trunc和round的區(qū)別

Oracle的Trunc和round的區(qū)別

時間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)

  select trunc(5.75), trunc(5.75,1), trunc(5.75,-1) from dual

  trunc(x [,y]),其中如果沒有指定y,則對x在0位小數(shù)進(jìn)行截斷,例如:TRUNC(5.75)=5,如果y是負(fù)數(shù),則對x在小數(shù)點左邊的第|y|位處進(jìn)行截斷,例如:TRUNC(5.75, -1)=0,這里應(yīng)對小數(shù)點左邊的第|-1|位截取,為什么是0,不是5?

  另外ROUND函數(shù)是對數(shù)值進(jìn)行取整, 同TRUNC,例如:ROUNC(5.75)=6,表示對5.75在0位小數(shù)處進(jìn)行取整,這里0位小數(shù)是7?取整怎么就是6不是5?四舍五入了?ROUNC(5.75, 1)=5.8,這里第1位小數(shù)是5?取整進(jìn)行了四舍五入?ROUND(5.75, -1)=10,對5.75在左邊第|-1|位取整,左邊第一位就是十位?5是個位,是第0位?

  解答如下:

  第一個問題 如果y是負(fù)數(shù),則對x在小數(shù)點左邊的第|y|位處進(jìn)行截斷,例如:TRUNC(5.75, -1)=0      5.75 看成 0005.75.000 從小數(shù)點左邊第一位往左邊截,不是0嗎

  第二個問題,例如:ROUND(5.75)=6,表示對5.75在0位小數(shù)處進(jìn)行取整,這里0位小數(shù)是7?    0位小數(shù)是沒有,不是7, 7是第一位小數(shù)了。

  5.75取整 就是6啊,是四舍五入了啊,要不 round和trunc就沒區(qū)別了嘛。

  ROUND(5.75, 1)=5.8,這里第1位小數(shù)是5?   不是,第一位小數(shù)是7   四舍五入就是 5.8

  ROUND(5.75, -1)=10,對5.75在左邊第|-1|位取整,左邊第一位就是十位? 小數(shù)點左邊第一位是個位,你同樣看成 00005.75000, 從個位的左邊開始取,并四舍五入。 個位是5 左邊的十位是0, 由于5是進(jìn)1的,所以是10.

關(guān)鍵詞標(biāo)簽:Oracle

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 Oracle中使用alter table來增加,刪除,修改列Oracle中使用alter table來增加,刪除,修改列oracle中使用SQL語句修改字段類型-oracle修oracle中使用SQL語句修改字段類型-oracle修使用低權(quán)限Oracle數(shù)據(jù)庫賬戶得到管理員權(quán)限使用低權(quán)限Oracle數(shù)據(jù)庫賬戶得到管理員權(quán)限Oracle對user的訪問控制Oracle對user的訪問控制

相關(guān)下載

人氣排行 ORACLE SQL 判斷字符串是否為數(shù)字的語句Oracle中使用alter table來增加,刪除,修改列的語法ORACLE和SQL語法區(qū)別歸納(1)oracle grant 授權(quán)語句如何加速Oracle大批量數(shù)據(jù)處理Oracle刪除表的幾種方法ORACLE修改IP地址后如何能夠使用Oracle 10g創(chuàng)建表空間和用戶并指定權(quán)限