Bonjour,
La fonctiontelle q'elle est définie en VB arrondit un nombre à la valeur d'arrondi la plus proche de zéro. La valeur renvoyée est double. Les arguments Number et n sont de type double comme déclaré dans la définition.WorksheetFunction.RoundDown(Number,n)
Testant cette fonction en créant la fonction personnalisée suivante sous EXCEL:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Public Function App(x As Double) As Double App = WorksheetFunction.RoundDown(x, 14) End FunctionMaintenant changeant le type de la variable x du Double au Single comme suit :donnant à x la valeur 12.85 Résultat App=12.85 OK
Normalement App="Valeur!" du moment où le type de la variable x ne convient pas à la définition de la fonction en question.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Public Function App(x As Single) As Double App = WorksheetFunction.RoundDown(x, 14) End Function
Ensuite, déclarant le résultat de App() en Single comme suit :donnant à x la valeur 12.85 Résultat App=12.5799999237061???!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Public Function App(x As Single) As Single App = WorksheetFunction.RoundDown(x, 14) End FunctionIl en est de même pour :Pour x = 12.85 App = 12.57999992370600 ???!!!
Alors, qu'est ce que vous en pensez ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Public Function App(x As Double) As Single App = WorksheetFunction.RoundDown(x, 14) End Function
Cordialement
Partager