Egalité aléatoire problématique entre valeurs doubles

Bonjour le forum,

je "travaille" actuellement sur un sujet émanant de MAVERICK consistant à trouver une combinaison de nombres dont la somme équivaut à un nombre-cible.

Dans la plupart des cas, pas de souci.

Malheureusement, certaines combinaisons correctes restent ignorées par la macro en raison d'une égalité non-reconnue entre cible et somme de la combinaison.

Même en calant le format de la colonne en double, 2 décimales (ce qui n'est pas très agréable à voir pour les entiers) ou en formatant les valeurs en 2 décimales, le problème persiste.

Je vous ai trafiqué le code de la macro pour que vous puissiez voir le déroulement avec affichage des valeurs intermédiaires dans une MsgBox : valeur-cible / valeur de l'indicateur d'égalité / somme combinaison.

  • Tapez 436,5 en [B4] : la combinaison n'est pas acceptée ;
  • 436,47 - 436,48 - 436,49 ne seront pas acceptées alors que les totaux sont égaux ;
  • 436,46 - 436.51 seront acceptées ;
Il y a certainement d'autres cas à problème mais si vous pouvez m'expliquer ce mystère, cela réglera l'ensemble.

Grand merci à ceux qui pourront m'aider sur ce coup-là!

A+

Bonjour,

Tu es tombé sur un problème de précision des doubles... à voir ici :

Du coup, si tu mets :

If Round(dblTot, 2) = Round(dblNb, 2) Then iOK = 1

ça devrait le faire

Salut Oxydum,

Bingo !

Merci pour l'info : je vais étudier cela!

Dommage que je ne puisse pas t'aider aussi efficacement à propos de tes carets !

Grand merci, Oxydum!

A+

Rechercher des sujets similaires à "egalite aleatoire problematique entre valeurs doubles"