Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2522 connectés 

  FORUM HardWare.fr
  Programmation
  C

  probleme egalité de deux double

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme egalité de deux double

n°1565408
Profil sup​primé
Posté le 25-05-2007 à 18:39:39  answer
 

donc voilà dans un programme lorsque je test l'égalité de deux doubles,  
 
meme lorsque cela est supposé etre vraie, cela me donne des résultats faux
 
je ne sais pas trop pourquoi
 
j'ai testé
 
if( fabs(a-b) < 0.000001)
 
avec a et b les deux doubles
 
mais visiblement cela a quelques repercussions sur mon programme
 
je vous remercie d'avance de votre aide
 
[:augie]

mood
Publicité
Posté le 25-05-2007 à 18:39:39  profilanswer
 

n°1565428
Sve@r
Posté le 25-05-2007 à 19:05:59  profilanswer
 


 
Hum... as-tu bien inclu "math.h" ???
Si tu ne le fais pas, le compilo voyant arriver "fabs" qu'il ne connait pas, la considèrera comme du "int" et  
1) ne considèrera que les 2 premiers octets de la valeur renvoyée
2) convertira ces 2 octets a format "int"
=> peu de chances d'obtenir le bon résultat !!!


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1565526
Profil sup​primé
Posté le 26-05-2007 à 01:36:46  answer
 

oui oui j'ai bien inclu math.h  
 
mais quand j'avais essayé a==b , ca ne marchait pas
 
mais je peux retenter le coup :/

n°1565528
fenax
Posté le 26-05-2007 à 02:51:37  profilanswer
 

La probabilité d'avoir une égalité réalisée entre deux valeurs etant quasi nule l'idée de les soustraire et de comaprer la valeur absolue du résultat était bonne (je ne vois d'ailleur pas d'autre moyen).
 
Maintenant si cette comparaison as des répercutions ailleur dans ton programme, il serais plus aisé de t'aider avec une plus grande portion de code.
Ton probleme est peuetre du à l'imprécision de 0.000001  
ou alors a l'arondissement effectué pour faire entrer la valeur décimale dans une variable binaire (0.1 est un nombre décimal illimité en biniare)

n°1565531
Profil sup​primé
Posté le 26-05-2007 à 07:27:09  answer
 

wai mais là imagine que tes variables ont un sens dans ton programme

 

et elles sont censées avoir la meme valeur a certain moment

 

et meme lorsqu'elles avaient la meme valeur (vérification avec des printf)

 

ca ne marchait pas

 

p-ze est ce du a une imprécision des printf ?

 

ps : mon code est long (presque mille ligne)

 

je veux bien te donner la portion ou il n'y a que :le fabs mais je sais pas si ca te servira bcp


Message édité par Profil supprimé le 26-05-2007 à 07:27:53
n°1565713
el muchach​o
Comfortably Numb
Posté le 26-05-2007 à 22:53:33  profilanswer
 

1) 1.0e-6d à la place de 0.000001 ?
2) Ton calcul numérique diverge -> t'es bon pour tout revoir, du choix de l'algo à son implémentation (pertes de précisions en cours de calcul notamment).


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  probleme egalité de deux double

 

Sujets relatifs
Problème d'ajout dans un arrayProbleme d'utilisation de l'API C de mysql sous linux
problème de memory_limit[Résolu] Problème d'include
[ Résolu ] Problème lors du Passage des ParamètesProbleme d'arrondi
Problème entre argument + fonction + variable + espaceProblème de création de boucles
Problème requete SQL sur du PHP[JS] Problème de rafraichissement de l'affichage
Plus de sujets relatifs à : probleme egalité de deux double


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR