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

Magic_Doctor

XLDnaute Barbatruc
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:
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
 

TooFatBoy

XLDnaute Barbatruc
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:

Magic_Doctor

XLDnaute Barbatruc
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
 

Statistiques des forums

Discussions
299 914
Messages
1 980 042
Membres
206 963
dernier inscrit
julien183645