XL 2010 Problème avec un résultat numérique

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Magic_Doctor

XLDnaute Barbatruc
Supporter XLD
Bonjour,

J'ai une variable numérique, "maVariable", déclarée comme Double (#).
En faisant des essais, j'ai remarqué cette curiosité.
Exemple :
maVariable = 0,13333333333...
si, dans une macro, j'écris :
[E32] = maVariable * 10 --> 1,333333
[E32] = maVariable * 20 --> 2,666666
[E32] = maVariable * 30 --> 4 ................ alors que je m'attendais à 3,99999
Pourquoi cet arrondi quand pour cette valeur de maVariable on la multiplie par 30 (idem avec 60, 90...) et comment y remédier ?

Je signale que si je récupère la valeur de maVariable dans une cellule de la feuille, par ex. [E32] = maVariable, s'affiche bien en E32 0,1333333. En E33 j'écris : = E32 * 30. Résultat : 4 !
Bon, maintenant je rentre manuellement dans la cellule E35 : 0,1333333
En E36 j'écris : = E35 * 30. Résultat : 3,99999

Merci pour toute suggestion.
 
Dernière édition:
Bonjour Magic_Doctor, le forum

la valeur est bonne dans la cellule, c'est juste un problème d'affichage lié au format standard encore que je ne comprenne pas pourquoi uniquement en écriture par VBA.

Bien cordialement, @+
 
Dernière édition:
Re,

mets tes cellules au format numérique 10 décimales, tu verras que la valeur écrite en VBA est bonne, cela ne rend pas le problème d'affichage en cellule format standard plus compréhensible.

Cordialement, @+
 
Bon, maintenant je rentre manuellement dans la cellule E35 : 0,1333333
En E36 j'écris : = E35 * 30. Résultat : 3,99999
et si tu entres manuellement en E35 la mème valeur à 11 décimales que dans ta macro, tu auras le même problème d'affichage en E36 en entrant manuellement = E35 * 30
pas lié à Vba mais bien au format standard de la cellule et à l'affichage
 
Bonjour,

Ca me parait normal, à cause de la précision des calculs : Excel ne pouvant gérer un nombre infini de chiffres après la virgule, il est obligé d'arrondir.


Supposons qu'Excel arrondisse les nombres à 10 chiffres après la virgule.
(mais ça marche quel que soit le nombre de chiffres).
Remarque : on ne peut pas mettre de trait au-dessus des chiffres, alors je le mets en-dessous. (exemple : 4/3 = 1,3)

Si on arrondi 1,3 , le dernier chiffre est un 3, donc on se retrouve avec 1,333 333 333 3.
Si on arrondi 1,6 le dernier chiffre est un 7, donc on se retrouve avec 1,666 666 666 7.
Si on arrondi 1,8 le dernier chiffre est un 9, donc on se retrouve avec 1,888 888 888 9.
Si on arrondi 1,9 le dernier chiffre est un 0, et par "effet domino" on se retrouve avec 2,000 000 000 0.

[edit]
Je viens de faire des tests avec mon Excel 32 bits sous Windows 64 bits.

Precision-de-calcul.png

Moralité : si tu ne veux pas voir 4 s'afficher, il faut ne pas dépasser les limites de précision de calcul. 😉
[/edit]
 
Dernière édition:
Re,

Ça progresse un peu...
maVariable = 0,13333333333...
Round(maVariable , 5) = 0,13333
Round(maVariable , 5) * 15 = 1,99995
Je voudrais maintenant n'avoir que 2 chiffres après la virgule, autrement dit : 1,99.
Comment m'y prendre ?
 
Re,

Je ne cherchais pas à avoir 3,99999 mais 3,99, voire 3,999.
Il s'agit d'une masse en g et, en pratique, en deçà du cg ou du mg, ça devient de la théorie. Le but est d'afficher dans une cellule cette valeur non arrondie. J'y suis enfin arrivé en bidouillant une fonction.
Merci pour votre intervention
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour