test du type if(toto==nan) ou if(toto==inf)

test du type if(toto==nan) ou if(toto==inf) - C++ - Programmation

Marsh Posté le 13-02-2006 à 11:32:49    

Bonjour a tous,
 
J aimerais savoir si il est possible de faire des tests du type
 
if (toto==nan) ou if (toto==inf)
 
J ai essaye directement comme ca a tout hazard et ca ne marche pas ;) J ai pas envi de faire de test sur mes operations mais seulement lors du remplissage de mes histos.
 
Merci a tous ;)

Reply

Marsh Posté le 13-02-2006 à 11:32:49   

Reply

Marsh Posté le 13-02-2006 à 11:34:56    

not a number ?
infinity ?

Reply

Marsh Posté le 13-02-2006 à 11:35:18    

avec des float/double je suppose ?

Reply

Marsh Posté le 13-02-2006 à 11:35:37    

faudrait peut être préciser ce qu'est toto, nan et inf :heink:

Reply

Marsh Posté le 13-02-2006 à 11:37:48    

j'ai trouvé ça avec google (je cherchais pas spé sur la msdn):
http://msdn.microsoft.com/library/ [...] nitems.asp

Reply

Marsh Posté le 13-02-2006 à 11:47:50    

toto est un double
nan c est une operation du type 0/0
inf une operation de type 1/1E-10000000000000000000000000000000000000000000000000
 
nan et inf sont les valeurs affichees par std::cout<<toto<<std::endl

Reply

Marsh Posté le 13-02-2006 à 11:56:46    

pleaseeee....help meeee :(

Reply

Marsh Posté le 13-02-2006 à 11:58:15    

isnan(double x) et finite(double x) permettent de tester les valeurs

Reply

Marsh Posté le 13-02-2006 à 12:04:53    

donc je dois faire
 
isnan(toto)
{
std::cout<<"toto est un NAN"<<std::endl;
}
 
finite(toto)
{
std::cout<<"toto n est pas un INF"<<std::endl;
}
 
C est ca ? :)


Message édité par sylvaing le 13-02-2006 à 12:05:14
Reply

Marsh Posté le 13-02-2006 à 12:11:20    

Plutot : if(isnan(toto)) et if(!finite(toto)). Je crois que seul le  test finite suffirait, car finite retournera 0 si toto est NAN.

Reply

Marsh Posté le 13-02-2006 à 12:11:20   

Reply

Marsh Posté le 13-02-2006 à 12:16:17    

Muchas Gracias :) Je vais essayer ca... :)
 
Merci a tous :)

Reply

Marsh Posté le 27-08-2010 à 15:51:02    

template <class X>
bool isNAN(X x)
{
   return x!=x;
}
 
 
Si x est NAN alors x != x est vrai et faux dans tous les autres cas.

Reply

Marsh Posté le 27-08-2010 à 16:26:10    

C99 isnan / isfinite
 
Le boot de template c'est bien, sauf que le compilateur va certainement sabrer tout ça.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed