在實際的應用中,關係到數值取捨的時候,經常會遇到四捨五入、取整、保留小數位數等諸多問題,這些問題用到了七個函數,分別是INT、TRUNC、ROUND
、ROUNDUP、ROUNDDOWN 、FLOOR、 CEILING函數,今天就這七個函數進行詳細的比較。首先 INT函數。INT函數就是取整函數,是將一個數值向下取整為最接近它的整數的函數。語法:Int(number),返回將小數延絕對值增大的方向進行捨去,所得的數值是不大於取整數值本身的最大整數。
舉例:INT(4.2)=4 INT(-4.2)=-5
第二 TRUNC函數。功能是直接去除數字的小數部分。語法:TRUNC(number,num_digits),Number為需要截尾取整的數字,Num_digits 用於指定取整精度的數字。默認值為 0。返回的是去除小數部分的整數:
舉例:TRUNC (4.2)=4 TRUNC (-4.2)=-4
注意:INT函數只能返回整數,但TRUN函數可以返回小數,這是受到Num_digits值的影響。
第三ROUND函數。是四捨五入函數。語法round(number,digits),其中number,要四捨五入的數,digits是要在小數點後保留的位數。
舉例: ROUND (4.2,0)=4 ROUND (-4.2,0)=-4
第四 ROUNDUP函數。ROUNDUP函數是向上取捨函數。語法:ROUNDUP(number, num_digits)Number 為需要向上舍入的任意實數,Num_digits 舍入後的數字的小數位數。整數舍入取值是向上取值,舍入不遵循四捨五入規則。
這個函數可以這樣理解:就是要捨去的首數小於4也進數加1, 如果 num_digits 大於 0,則向上舍入到指定的小數位。如果 num_digits 等於 0,則向上舍入到最接近的整數
舉例: ROUNDUP (4.2,0)=5 ROUNDUP (-4.2,0)=-5
第五 ROUNDDOWN函數。此函數和Roundup函數相反,Rounddown函數是指靠近零值,向下(絕對值減小的方向)舍入數字,語法: ROUNDDOWN(number,num_digits)Number 為需要向下舍入的任意實數。Num_digits 舍入後的數字的位數。
舉例: ROUNDDOWN (4.2,0)=4 ROUNDDOWN (-4.2,0)=-4
第六 FLOOR函數。其功能是"向下取整",或者說"向下舍入",即取不大於基準的最大整數。語法:FLOOR(number,significance),參數:Number為要舍入的某一數值,Significance為倍數。使其等於最接近的significance的倍數
舉例: FLOOR(4.2,3)=3 FLOOR(14.2,4)=12
注意:rounddown和floor都是向下舍入的函數,但前者是通過指定位數來得到舍入的結果,後者是通過指定舍入基數來得到結果。
第七 CEILING 函數。和FLOOR函數的功能其功能是"向上取整",或者說"向上舍入",即取不大於基準的最小整數。語法
CEILING(number,significance),Number 待舍入的數值。Significance 基數。
也就是說此函數可以將參數Number向上舍入(沿絕對值增大的方向)為最接近的 significance 的倍數。
舉例:CEILING (4.2,3)=6 CEILING (14.2,4)=16
注意:roundup和ceiling都是向上舍入的函數但前者是通過指定位數來得到舍入的結果,後者是通過指定舍入基數來得到結果。
上面的各個函數講完了,下面看看實例:
在下面的圖表中分別給出了各個函數的名稱和取值,試著想想結果:
我們把公式錄入:
看看返回的結果,和你的答案是否一致呢?
今日內容技巧:
第一、INT函數只能返回整數,但TRUN函數可以返回小數,這是受到Num_digits值的影響。
第二、rounddown和floor都是向下舍入的函數,但前者是通過指定位數來得到舍入的結果,後者是通過指定舍入基數來得到結果。
第三、roundup和ceiling都是向上舍入的函數但前者是通過指定位數來得到舍入的結果,後者是通過指定舍入基數來得到結果。
第四、按0.5單位取捨技巧,將其目標值乘以2,再按其前一位的數值四捨五入後,所得數值再除以2;
第五、按0.2單位取捨技巧,將其目標值乘以5,再按其前一位的數值四捨五入後,所得數值再除以5;
如果你沒有清楚上述的技巧,趕快,再看一遍上面的文章,直到弄懂。
閱讀更多 VBA專家 的文章