Un point d’arrêt sur la fonction WorksheetFunction.RoundDown() ?
Bonjour,
La fonction
Citation:
WorksheetFunction.RoundDown(Number,n)
telle 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.
Testant cette fonction en créant la fonction personnalisée suivante sous EXCEL:
Code:
1 2 3
| Public Function App(x As Double) As Double
App = WorksheetFunction.RoundDown(x, 14)
End Function |
Citation:
donnant à x la valeur 12.85 Résultat App=12.85 OK
Maintenant changeant le type de la variable x du Double au Single comme suit :
Code:
1 2 3
| Public Function App(x As Single) As Double
App = WorksheetFunction.RoundDown(x, 14)
End Function |
Normalement App="Valeur!" du moment où le type de la variable x ne convient pas à la définition de la fonction en question.
Citation:
donnant à x la valeur 12.85 Résultat App=12.5799999237061???!!!
Ensuite, déclarant le résultat de App() en Single comme suit :
Code:
1 2 3
| Public Function App(x As Single) As Single
App = WorksheetFunction.RoundDown(x, 14)
End Function |
Citation:
Pour x = 12.85 App = 12.57999992370600 ???!!!
Il en est de même pour :
Code:
1 2 3
| Public Function App(x As Double) As Single
App = WorksheetFunction.RoundDown(x, 14)
End Function |
Alors, qu'est ce que vous en pensez ?
Cordialement