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

C++ Discussion :

long double ?


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 48
    Par défaut long double ?
    Bonjour à tous,
    Ayant besoin d'une grande précision (supèrieure à celle autorisée par un double en particulier) je souhaiterais pouvoir utiliser dans mes calculs des "long double"... Je précise que je travaille sous linux avec g++ 4.0.3 . Le problème facheux que je rencontre alors se résume dans la portion de code suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    long double x1 = 1e400, x2 = 1e400;
    cout << (x1 / x2) << endl;
    ce qui nous affiche un miraculeux "NaN" comme s'il considérait x2 comme "infini" et qu'il ne prenait pas en compte son caractère de long double (qui est théoriquement codé sur 96 bits sur notre machine - 32 bits - et qui pourrait donc effectuer ce genre de calcul)... On pourrait se dire que le problème vient de "cout" mais j'ai essayé d'autres portions de code sans cette ambiguité et les choses restaient inchangées... Quelqu'un parmi vous a-t-il déjà utilisé le type long double sous g++ ?? Existe-t-il des options de compilations particulières pour pouvoir utiliser ce type sans encombre ou d'autres astuces qui me seraient jusque-là passablement étrangères ?? Merci par avance pour votre aide.

  2. #2
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    1e400 reste un litteral de type double. Le fait que tu l'assignes a un long double ne change pas son type. 1e400L est un litteral de type long double.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 48
    Par défaut
    Merci beaucoup, ça marche !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Long double : 1e+006 ...
    Par Invité dans le forum C++
    Réponses: 8
    Dernier message: 14/02/2006, 13h07
  2. Affichage long double
    Par slate dans le forum C++
    Réponses: 5
    Dernier message: 07/02/2006, 18h04
  3. Réponses: 4
    Dernier message: 12/09/2003, 11h38
  4. abs pour un long double
    Par barthelv dans le forum C
    Réponses: 2
    Dernier message: 23/07/2003, 16h16
  5. String -> long double (_strlold ?)
    Par haypo dans le forum C
    Réponses: 7
    Dernier message: 25/07/2002, 20h22

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