test du type if(toto==nan) ou if(toto==inf) - C++ - Programmation
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
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
Marsh Posté le 13-02-2006 à 11:58:15
isnan(double x) et finite(double x) permettent de tester les valeurs
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 ?
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.
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.
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.
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