VBA 函數 ROUND 的問題
我最近才發現 Microsoft Office VBA 裡的 Round 函數有問題!

下面是 Office 裡 Microsoft Visual Basic 的說明:

Round 函數
描述
傳回一個數值,該數值是按照指定的小數位元數進行四捨五入運算的結果。
語法
Round(expression [,numdecimalplaces])
Round 函數語法有如下幾個單元:
單元 描述
expression 必要引數。要進行四捨五入運算的數值運算式。
numdecimalplaces 選擇性引數。數字值,表示進行四捨五入運算時,小數點右邊應保留的位元數。如果忽略,則 Round 函數傳回整數。

但其實是錯的!
這個函數傳回的結果其實是進位或捨去到最接近的偶數值!


Round(1.4) = 1
Round(1.5) = 2
Round(2.4) = 2
Round(2.5) = 2

如果在 VBA 中想將數值 X 四捨五入進位到整數只能這麼寫

WorksheetFunction.Round(X, 0)



Int(X + 0.5)

這樣算出來的結果才會正確!

Grant 發表在 痞客邦 PIXNET 留言(1) 人氣()