Problème calcul avec décimales

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 !

antiphot

XLDnaute Occasionnel
Bonjour à toutes et à tous

J'ai une petite macro assez simple qui vérifie la correspondance entre un volume total et une répartition
ex: 2x5 doivent donner 10 . Dans le cas contraire, un msgbox signale une erreur de calcul.

Tout fonctionne bien avec des chiffres entiers. Par contre ça se gâte avec des décimales.
Ex: (1x0,1) + (1x0,2) = 0,3 donne un calcul faux.

2x0,5 = 1 donne un calcul juste

Je pense que tout cela est lié à l'emploi des décimales mais apparement cela n'affecte que le total.

Si quelqu'un a une idée ou une piste à me proposer, je suis preneur

Ci-joint un fichier exemple

Merci par avance
Philippe
 

Pièces jointes

Re : Problème calcul avec décimales

bonjour antiphot

salur michel_m

moi aussi j'ai testé avec X as Double

malheureusement je suis toujours tombé dans la même erreur

je n'ai pu la resoudre qu'avec Round(X, 6)

c'est a dire en arrondissant X a la 6eme decimale apres la virgule ce qui me parait suffisant
 

Pièces jointes

Re : Problème calcul avec décimales

Bonjour Antiphot et tout le forum,
Salut PierreJean,

En VB Microsoft conseille d'utiliser la déclaration suivante pour plus de précision sur les décimales et surtout pour la Finance.

Currency, type de données


Les variables de type Currency sont stockées sous la forme de nombres de 64 bits (8 octets) au format entier, avec un décalage de 10 000 afin d'obtenir un nombre à virgule fixe comprenant 15 chiffres à gauche du séparateur décimal et 4 chiffres à droite. Cette représentation offre une plage comprise entre -922 337 203 685 477,5808 et 922 337 203 685 477,5807. Le caractère de déclaration de type Currency est le signe @.

Le type de données Currency est utile pour les calculs monétaires et pour les calculs à virgule fixe dans lesquels la précision revêt une importance particulière.


Juste pour Info, mais utile dans les calculs précis.

@+
 
Dernière édition:
Re : Problème calcul avec décimales

bonjour à tous

Salut JYLL

Merci de m'avoir envoyé revoir les divers types de données

ce qui est curieux dans le probleme posé c'est que

Single fonctionne
Double bugg
currency fonctionne

quant a decimal il est cité dans l'aide mais ...
 
Re : Problème calcul avec décimales

Re Bonsoir PierreJean,

Ce currency on a tendance à l'oublier, pas évident de retenir ce nom, je sais qu'il existe et souvent je retourne dans l'aide pour le retrouver. Oui pour double, c'est le codage qui fait qu'il y a une erreur. Au niveau des calculs il faut se méfier de la précision, j'étais souvent confronté à cela dans mon travail, c'est des petits pouillèmes que tu traines et à la fin ça grossit ou dans un test tu ne trouves jamais le bon résultat. La premère fois que j'ai cherché ce type de problème c'était sur un Oric Atmos ( hier ) pour la racine carrée de 100 qui ne donnait pas 10 mais du genre 10.000000000001.

Bonne soirée et @+ sur le forum.
 
Dernière édition:
- 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