Probleme de somme boucle...
Résolu
GermPeru
Messages postés
172
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
A voir également:
- Probleme de somme boucle...
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Somme en anglais excel - Guide
- Somme excel ne fonctionne pas ✓ - Forum Excel
- Mise à disposition de boucle locale dédiée ✓ - Forum Freebox
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
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
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
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,
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 :)
en single, moitié moins précis, cela fait 1.00000, donc 1
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