2012-05-17 44 views

回答

24

我記得使用Int()函數。 ex int(2.99)= 2; int(2.1)= 2等等。谷歌更多信息!

+0

+ 1 :)是Math.Floor()相當於爲int() –

+2

請記住,INT(-5.8)會給-6這可能不是你所期望的。 –

+0

我用這個來測試double是不是整數是'if x = int(x)then'integer end if'有沒有更好的方法,而不必拋出錯誤? – OfficialBenWhite

3

這是Round()

Sub Sample() 
    Dim dval As Double 
    dval = 1.12345 

    Debug.Print Round(dval, 0) 
End Sub 

0上述指定要的小數位數。

編輯:

阿爾比Patozi是正確的。 Math.Floor()equivalentint()。我的印象是你只是想返回一個沒有小數的數字。但後來我擡頭http://www.w3schools.com/jsref/jsref_floor.asp

地板()方法DOWNWARDS數字舍入到最接近的整數,並返回結果。

'~~> JavaScript floor() Method 
'var a=Math.floor(0.60); ~~> 0 
'var b=Math.floor(0.40); ~~> 0 
'var c=Math.floor(5);  ~~> 5 
'var d=Math.floor(5.1);  ~~> 5 
'var e=Math.floor(-5.1); ~~> -6 
'var f=Math.floor(-5.9); ~~> -6 

Sub Sample() 
    Dim dval(5) As Double, i As Long 

    dval(0) = 0.6: dval(1) = 0.4: dval(2) = 5 
    dval(3) = 5.1: dval(4) = -5.1: dval(5) = -5.9 

    For i = LBound(dval) To UBound(dval) 
     Debug.Print Round(dval(i), 0); " ~~ "; Int(dval(i)) 
    Next 
End Sub 

RESULT

ROUND()~~ INT()

1 ~~ 0

0 0 ~~

5〜 〜5

5 ~~ 5

-5 ~~ -6

-6 ~~ -6

+1

非常感謝你提供的信息豐富的答案 –

3

要小心,CINT()實際上回合數,但INT()不。

CInt(1.6) ~~ 2 
Int(1.6) ~~ 1