Probleme de somme boucle...
Résolu/Fermé
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
-
27 mars 2018 à 20:16
yg_be Messages postés 21304 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mars 2023 - 27 mars 2018 à 22:08
yg_be Messages postés 21304 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mars 2023 - 27 mars 2018 à 22:08
A voir également:
- Probleme de somme boucle...
- Somme si couleur - Guide
- Somme excel - Guide
- Pc s'allume et s'éteint en boucle - Forum Matériel informatique
- Somme si ou ✓ - Forum Excel
- Somme recherchev - Forum Excel
2 réponses
yg_be
Messages postés
21304
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
1 325
Modifié le 27 mars 2018 à 20:46
Modifié le 27 mars 2018 à 20:46
bonsoir germperu, je pense que c'est parce que 1 n'est pas toujours totalement égal à 1.
pour un ordi, 0.825 + 0.1 + 0.075 ne fait pas exactement 1. parce que l'ordi ne travaille pas avec une base décimale.
suggestion:
pour un ordi, 0.825 + 0.1 + 0.075 ne fait pas exactement 1. parce que l'ordi ne travaille pas avec une base décimale.
suggestion:
Dim CantL As single
ccm81
Messages postés
10544
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
18 mars 2023
2 336
27 mars 2018 à 20:34
27 mars 2018 à 20:34
Bonjour
C'est une conséquence du codage des décimaux
Essaies en comparant la différence CantL-1 à un nombre proche de 0 par exemple
If abs(CantL - 1) < 0.00001 Then MsgBox "ok"
Cdlmnt
C'est une conséquence du codage des décimaux
Essaies en comparant la différence CantL-1 à un nombre proche de 0 par exemple
If abs(CantL - 1) < 0.00001 Then MsgBox "ok"
Cdlmnt
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
27 mars 2018 à 20:53
27 mars 2018 à 20:53
Bonjour ccm81 et merci,
quant tu dis "conséquence du codage des décimaux" ça me sonne très abstrait; car durant mes tests j´ai testé les décimales:
-exemple 1
0.666666666666667
0.333333333333333
-exemple 2
0.100000000000000
0.017600000000000
0.639200000000000
0.043200000000000
0.100000000000000
0.050000000000000
0.030000000000000
0.020000000000000
C’est 2 exemples fonctionnent, mais pas avec: 0.825, 0.1, 0.075; alors que dans l´exemple 1 il y a plus de décimale et dans l´exemple 2 il y a plus de valeur a compter...
J´ai testé ta fonction et oui cela fonctionne ce qui veut dire que la somme n´est pas exactement égale 1?...
Cdt,
quant tu dis "conséquence du codage des décimaux" ça me sonne très abstrait; car durant mes tests j´ai testé les décimales:
-exemple 1
0.666666666666667
0.333333333333333
-exemple 2
0.100000000000000
0.017600000000000
0.639200000000000
0.043200000000000
0.100000000000000
0.050000000000000
0.030000000000000
0.020000000000000
C’est 2 exemples fonctionnent, mais pas avec: 0.825, 0.1, 0.075; alors que dans l´exemple 1 il y a plus de décimale et dans l´exemple 2 il y a plus de valeur a compter...
J´ai testé ta fonction et oui cela fonctionne ce qui veut dire que la somme n´est pas exactement égale 1?...
Cdt,
27 mars 2018 à 21:08
en modifiant la déclaration de ma variable a single cela fonctionne avec tous mes exemples... Aurais tu une explication que 1 ça fait pas 1 en double mais 1 en single? Alors que les deux sont des décimales.
Merci :)
27 mars 2018 à 21:33
en single, moitié moins précis, cela fait 1.00000, donc 1
27 mars 2018 à 21:44
Par tout hasard je cherche a me perfectionner en VBA, est ce que tu aurais une bonne référence de livre ou cours a me conseiller.
Merci yg_be
27 mars 2018 à 21:47
27 mars 2018 à 22:03