Ecart décimal entre VBA et Excel
Mathieulai
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, j'ai un écart entre le résultat retourné par une formule Excel d'un côté et la même en VBA de l'autre. Je ne sais pas d'où cela vient et n'arrive pas à le résorber.
Voici le fichier : http://dl.free.fr/gEn4FKCOG
Voici le code VBA (résumé à la partie en cause) :
Function Prod(Remise As Single, Rs As Single) As Single
Prod = Remise * (1 - Rs)
End Function
Remise = 0,15
Rs = 0,10
VBA => Prod = 0,135000005364418
Excel => 0,135
Et dans la suite du code j'arrondis tout ça donc j'ai des écarts.
Merci pour votre aide.
Voici le fichier : http://dl.free.fr/gEn4FKCOG
Voici le code VBA (résumé à la partie en cause) :
Function Prod(Remise As Single, Rs As Single) As Single
Prod = Remise * (1 - Rs)
End Function
Remise = 0,15
Rs = 0,10
VBA => Prod = 0,135000005364418
Excel => 0,135
Et dans la suite du code j'arrondis tout ça donc j'ai des écarts.
Merci pour votre aide.
A voir également:
- Ecart décimal entre VBA et Excel
- Word et excel gratuit - Guide
- Liste déroulante excel - Guide
- Si et ou excel - Guide
- Nombre de jours entre deux dates excel - Guide
- Déplacer colonne excel - Guide
1 réponse
bonjour
le type single pose souvent des pb lorsqu'on le rentre des calculs
si tu passes en double tu obtiens bien la m^ chose qu'en XL
Michel
le type single pose souvent des pb lorsqu'on le rentre des calculs
si tu passes en double tu obtiens bien la m^ chose qu'en XL
Function Prod(Remise As Double, Rs As Double) As Double--
Michel
Mathieulai
Merci Michel, par contre le type de variable Double (8 bytes) pèse le double (par définition) que Single (4 bytes) et des variables j'en ai beaucoup dans mon code. Mais si je n'ai pas le choix.
michel_m
Messages postés
18903
Date d'inscription
Statut
Contributeur
Dernière intervention
3 318
>
Mathieulai
lorsque la fonction est terminée, le type des variables est annulé