web-dev-qa-db-fra.com

Fonction pour supprimer les décimales

Quel est l'équivalent JavaScript Math.Floor() dans VBA?. cette fonction doit supprimer toutes les décimales et renvoyer uniquement un entier.

19
Sami Al-Subhi

De ce dont je me souviens, utilisez la fonction Int (). ex

int(2.99) = 2 ; int(2.1)=2

etc.

32
Albi Patozi

faites attention à ce que CInt () arrondisse réellement le nombre, mais pas Int ().

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

C'est Round()

Sub Sample()
    Dim dval As Double
    dval = 1.12345

    Debug.Print Round(dval, 0)
End Sub

0 Ci-dessus spécifie le nombre de décimales souhaité.

MODIFIER:

Albi Patozi a raison. equivalent de Math.Floor() est int(). J'avais l'impression que vous vouliez simplement retourner un nombre sans les décimales. Mais j'ai levé les yeux http://www.w3schools.com/jsref/jsref_floor.asp

La méthode floor () arrondit un nombre VERS LE BAS à l'entier le plus proche et renvoie le résultat.

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

[~ # ~] résultat [~ # ~]

ROUND () ~~ INT ()

1 ~~ 0

0 ~~ 0

5 ~~ 5

5 ~~ 5

-5 ~~ -6

-6 ~~ -6

4
Siddharth Rout

Vous pouvez également appeler l'une des fonctions de feuille de calcul Excel à partir de VBA:

- Application.WorksheetFunction.Floor_Math

- Application.WorksheetFunction.Floor

2
ashleedawg