IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

VC++ .NET Discussion :

Constantes math�matiques et NaN


Sujet :

VC++ .NET

  1. #1
    Membre exp�riment�
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 895
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Seine Saint Denis (�le de France)

    Informations professionnelles :
    Activit� : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 895
    Par d�faut Constantes math�matiques et NaN
    Bonjour

    Une petite question. Dans le C++ STL standard (comme dans d'autres langages tel Java), il y a des constantes math�matiques contenues dans math.h.
    Parmi elles, je cherche plus particuli�rement une constante NaN. Celle-ci ne semble pas exister dans math.h avec Visual C++ Express.
    Ma question est simple : cette constante existe t'elle dans les librairies standard de Microsoft ?
    Dans le cas contraire, quelle astuce pourrais-je d�ployer pour simuler cette constante NaN ?

    Merci d'avance de vos r�ponses.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne r�pond � aucune question technique par MP.

  2. #2
    Membre exp�riment�
    Inscrit en
    D�cembre 2003
    Messages
    272
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2003
    Messages : 272
    Par d�faut
    NaN n'est pas une constante du C(++), c'est une valeur particuli�re de float (ou double) d�finie par la norme IEEE.
    Comme les valeurs infinies d'ailleurs.

    Edit :
    Comme sa valeur est clairement d�finie, tu peux la cr�er avec un cast d'entier vers float/double. C'est tr�s facile pour le NaN car sa valeur ne pose pas de probl�me d'endianess :
    float NaN = (float)(0xFFFFFFFF);
    double NaN = (double)(0xFFFFFFFFFFFFFFFF);

    pour les valeurs infinies, ce serait quelque chose comme :
    7F100000 ou 7FF0000000000000 pour +infinity
    FF100000 ou FFF0000000000000 pour -infinity

  3. #3
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Je ne suis pas s�r que les casts passent.
    �a a tendance � tenter de faire rentrer dans le float la valeur 4294967295.0 ...

    Quand j'ai voulu faire �a, j'ai du passer par des pointeurs.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    const unsigned long long minus1 = 0xFFFFFFFFFFFFFFFF;
    const float NaN = *((float*)&minus1);
    const double NaN = *((double*)&minus1);
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre exp�riment�
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 895
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Seine Saint Denis (�le de France)

    Informations professionnelles :
    Activit� : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 895
    Par d�faut
    Hmm, tr�s int�ressant ceci !
    Merci � vous deux, je vais impl�menter cela dans ma librairie


    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne r�pond � aucune question technique par MP.

  5. #5
    Membre exp�riment�
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 895
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Seine Saint Denis (�le de France)

    Informations professionnelles :
    Activit� : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 895
    Par d�faut
    Ca marche impeccable !
    Merci � vous deux !

    @++ et � charge de revanche.
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne r�pond � aucune question technique par MP.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. �valuateur de formule math�matique
    Par lyrau dans le forum G�n�rateurs de compilateur
    R�ponses: 5
    Dernier message: 28/03/2003, 22h50
  2. sum(XPATH) retourne NaN
    Par TOM-Z dans le forum XMLRAD
    R�ponses: 4
    Dernier message: 19/03/2003, 13h48
  3. [ADO] Constantes des types de champ
    Par SpaceFrog dans le forum VB 6 et ant�rieur
    R�ponses: 3
    Dernier message: 05/09/2002, 11h08
  4. Au sujet des constantes
    Par FranT dans le forum Langage
    R�ponses: 8
    Dernier message: 09/08/2002, 11h03
  5. Impl�mentation des fonctions math�matiques
    Par mat.M dans le forum Math�matiques
    R�ponses: 9
    Dernier message: 17/06/2002, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo