Est-ce que quelqu'un peut m'expliquer pourquoi la fonction round() dans une feuille de calcul est bien régie par la règle de l'arrondi mathématique alors que le round() en vba ne l'est pas?
je m'attendais a ce que les deux fonctionnent exactement de la meme facon mais ca n'est pas le cas et je ne comprend pas du tout
Donne 1, ce qui me semble le comportement normal et attendu (c'est a dire l'arrondi mathématique, si la décimale est <5 on arrondi a l'inférieur, si c'est >=5 on arrondi au supérieur)
Code : Sélectionner tout - Visualiser dans une fenêtre à part Cells(1, 1) = WorksheetFunction.Round(0.5, 0)
donne 0
Code : Sélectionner tout - Visualiser dans une fenêtre à part Cells(1, 2) = Round(0.5, 0)
pire encore, si on fait
on constate que 1,5 et 3,5 sont arrondi "correctement" a 2 et a 4
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Cells(1, 1) = WorksheetFunction.Round(0.5, 0) Cells(1, 2) = Round(0.5, 0) Cells(2, 1) = WorksheetFunction.Round(1.5, 0) Cells(2, 2) = Round(1.5, 0) Cells(3, 1) = WorksheetFunction.Round(2.5, 0) Cells(3, 2) = Round(2.5, 0) Cells(4, 1) = WorksheetFunction.Round(3.5, 0) Cells(4, 2) = Round(3.5, 0)
![]()
est-ce que quelqu'un a la moindre explication pour ce comportement farfellu?
Partager