Pb de nombres donnant des résultats surprenants

cs_alex1512 Messages postés 5 Date d'inscription jeudi 19 septembre 2002 Statut Membre Dernière intervention 21 octobre 2002 - 21 oct. 2002 à 16:37
cs_alex1512 Messages postés 5 Date d'inscription jeudi 19 septembre 2002 Statut Membre Dernière intervention 21 octobre 2002 - 21 oct. 2002 à 19:36
Bonjour,

J'aurai besoin d'aide car sur mon programme j'effectue des tests genre
if a<=b-c then
else...
a,b et c sont des double
le pb c'est que lorsque on a égalité des deux termes vba ne semble pas toujours reconnaitre le test, en effet si j'ai a=b-c vb ne reconnait pas toujours l'égalité : lorsque je fais dans un coin a-b+c j'ai un terme en 10^-17 et qui semble tous fausser

n'y a t'il pas un moyen d'éviter ce genre de résidu en se limitant a soit un autre type que double soit faire qu'on ai au max trois chiffres derrière la virgule ou autre chose ou peut etre peut on m'expliquer d'ou viennent ces résidus de nombre qui faussent tout?

Merci beaucoup d'avance
Alex 8-)

2 réponses

cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
21 oct. 2002 à 18:56
les calculs en double se font avec 15 chiffres significatifs : 0, et 15 chiffres ou 123, et 12 chiffres
....

Si tes nombres sont inférieurs à 1, essaie
If (a < b - c) Or (a - b + c < 10 ^ -15) Then

sinon remplace 10 ^ -15 par 10 ^ -14, ....
0
cs_alex1512 Messages postés 5 Date d'inscription jeudi 19 septembre 2002 Statut Membre Dernière intervention 21 octobre 2002
21 oct. 2002 à 19:36
Merci

Mais est ce que qqn pourrait m'expliquer d'ou vient ce 10^-17 pour des calculs genre .1-.15+.05 parce que ca devrait valoir 0 et c'est ce que mon test doit chercher?
Alex
0
Rejoignez-nous