Bonjour chère communauté,
Cela fait maintenant un moment que je n'ai plus écrit de message ici mais je rencontre actuellement un problème dans la résolution d'un projet pro.
Je vais essayer d'être clair :
Parlons d'une donnée, une formule.
Elle est définie par un nom et une liste de valeurs, 16 plus exactement. Je traite des valeurs en pourcentage. Et la somme des 16 pourcentages doit logiquement donner 100%.
Or, je peux aussi définir ces 16 pourcentages à partir de données en grammes.
Je défini valeur1 = 16g, valeur2 = 18g, valeur3 = 45g, etc...
Une fois que l'utilisateur a rentré ses valeurs, mon application calcule la somme des valeurs, puis pour chaque valeur, effectue un produit en croix pour obtenir une valeur en pourcentage.
Mon_pourcentage = valeur_en_grammes x 100 / somme_des_valeurs_en_grammes.
Jusque là, tout va bien. Or, je dois traiter toutes les données au dixième, soit, avec uniquement un chiffre après la virgule.
Et c'est là que ça se corse. Je traduit toutes mes valeurs en pourcentages, puis je les arrondi pour n'avoir qu'un chiffre après la virgule.
Maintenant, si je fais la somme des pourcentages, je n'ai pas 100, mais 99,9 ou 99,6 ou 100,2. Et c'est très embêtant pour moi.
Voilà pourquoi je me tourne vers vous. Comment pourrais-je résoudre ce problème ?
J'ai envisagé une solution. C'était de prendre le delta (100-99,6) et de l'ajouter à la plus grande de mes 16 valeurs pour que le résultat soit le plus proche possible. Mais pour des valeurs superieures à 0,1, je pense qu'il faudrait répartir ce delta sur plusieurs valeurs. Si oui, quel algo mettre en place ?
Merci par avance !
Partager