2012-05-17 5 views

Antwort

24

Von dem, was ich erinnere, verwenden Sie die Int() -Funktion. ex int (2,99) = 2; int (2.1) = 2 und so weiter. Google für weitere Informationen!

+0

+ 1 :) Ja das Äquivalent von Math.Floor() ist Int() –

+2

Beachten Sie, dass Int (-5.8) geben -6, die möglicherweise nicht, was Sie erwarten. –

+0

Ich verwende dies, um zu testen, ob ein Double ist eine ganze Zahl ist, wenn x = int (x) dann 'integer end if' Gibt es einen besseren Weg, ohne einen Fehler zu werfen? – OfficialBenWhite

3

Es ist Round()

Sub Sample() 
    Dim dval As Double 
    dval = 1.12345 

    Debug.Print Round(dval, 0) 
End Sub 

0 über die Anzahl der Dezimalstellen fest, die Sie wollen.

EDIT:

Albi Patozi richtig ist. Die equivalent von Math.Floor() ist int(). Ich hatte den Eindruck, dass Sie nur eine Zahl ohne Dezimalzahlen zurückgeben wollten. Aber dann schaute ich auf http://www.w3schools.com/jsref/jsref_floor.asp

Der Boden() -Methode rundet eine Zahl NACH UNTEN auf die nächste ganze Zahl ist, und gibt das Ergebnis.

'~~> 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

Vielen Dank für die informative Antwort –

3

vorsichtig sein, dass CInt() tatsächlich die Zahl rundet, aber int() nicht .

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