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 :

utilisation de long double


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Points : 361
    Points
    361
    Par défaut utilisation de long double
    Salut, j'essaie de faire un p'ti programme de calcul de fft, d'habitude dès que je fais du calcul numérique j'utilise fortran mais là je veux le faire en c.
    Voila, alors je dois lire des données dans un fichier .dat avec une certaine précision, genre 25.2738621 dès que je faisais des fscanf avec des %f et double ça ne marchait pas, alors j'ai définit mes variables comme étant des long double. Donc à ce moment j'arrive à lire les données, seulement si je fais une opération entre 2 long double (a-b) j'ai n'importe quoi. Est ce que vous avez une idée? Merci davance.

  2. #2
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    "long long double" peut être mais pas supporté par tout les compilos.
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  3. #3
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par reptils
    Voila, alors je dois lire des données dans un fichier .dat avec une certaine précision, genre 25.2738621 dès que je faisais des fscanf avec des %f et double ça ne marchait pas,
    Ben oui. Pour lire un double, le format est "%lf" avec fscanf()...
    alors j'ai définit mes variables comme étant des long double. Donc à ce moment j'arrive à lire les données, seulement si je fais une opération entre 2 long double (a-b) j'ai n'importe quoi. Est ce que vous avez une idée? Merci davance.
    Sans voir le code et un extrait du fichier de données, ça pas être facile...
    Pas de Wi-Fi à la maison : CPL

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par seriousme
    "long long double" peut être mais pas supporté par tout les compilos.
    Je ne pense pas que cet animal soit répertorié, même en C99...
    Pas de Wi-Fi à la maison : CPL

  5. #5
    Débutant Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Points : 291
    Points
    291
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Je ne pense pas que cet animal soit répertorié, même en C99...
    C99, du 13eme degrées?
    Prenez le temps d'aller vite...

    Programme sous Windows, en C avec Code::Blocks, en Java JRE 1.6. avec Eclipse, en PHP/HTML/CSS avec Dreamweaver CS5 ou NotePad++ et en VBA sous avec Access 2010, Excel 2010, Word 2010 et Outlook 2010.

  6. #6
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Je ne pense pas que cet animal soit répertorié, même en C99...
    Ce qui est étrange c'est que:
    sizeof(long long double) renvoie 8.
    En fait il est traité comme un "long long int".
    Et en effet il est rejeté par C99.
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par miron
    C99, du 13eme degrées?
    Non, c'est la dernière version du C.

    http://emmanuel-delahaye.developpez.com/notes.htm#norme
    Pas de Wi-Fi à la maison : CPL

  8. #8
    Débutant Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Points : 291
    Points
    291
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Non, c'est la dernière version du C.

    http://emmanuel-delahaye.developpez.com/notes.htm#norme
    Quand vous parlez de norme , c'est le nom des fonction, ...?
    Prenez le temps d'aller vite...

    Programme sous Windows, en C avec Code::Blocks, en Java JRE 1.6. avec Eclipse, en PHP/HTML/CSS avec Dreamweaver CS5 ou NotePad++ et en VBA sous avec Access 2010, Excel 2010, Word 2010 et Outlook 2010.

  9. #9
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par miron
    Quand vous parlez de norme , c'est le nom des fonction, ...?
    La norme, c'est le document officiel (ISO) qui définit le langage...
    Pas de Wi-Fi à la maison : CPL

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Points : 361
    Points
    361
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Ben oui. Pour lire un double, le format est "%lf" avec fscanf()...
    oups, je ne savais pas. Je vais tester avec les double uniquement

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Points : 361
    Points
    361
    Par défaut
    ouais c'est bon ça marche avec les double et %Lf j'ai enfin le bon résultat. par contre je ne pige pas pourquoi j'ai merdé sur les opération avec long double j'y réfléchirait plus tard

  12. #12
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par reptils
    ça marche avec les double et %Lf j'ai enfin le bon résultat.
    "%Lf" ou "%lf" ? C'est pas pareil...
    Pas de Wi-Fi à la maison : CPL

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Points : 361
    Points
    361
    Par défaut
    alors je reviens je n'avais pas vu que tu avais posé une question là dessus, alors ça marche pour les double et %lf, mais il se trouve que pour le gcc livré avec dev-cpp il pige %Lf et %lf de la meme maniere pour un double :/
    Effectivement sur le gcc de linux il ne supporte pas %Lf pour un double il lui faut %lf ce qui est logique.

  14. #14
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par reptils
    alors je reviens je n'avais pas vu que tu avais posé une question là dessus, alors ça marche pour les double et %lf, mais il se trouve que pour le gcc livré avec dev-cpp il pige %Lf et %lf de la meme maniere pour un double :/
    Effectivement sur le gcc de linux il ne supporte pas %Lf pour un double il lui faut %lf ce qui est logique.
    Sous Linux x86 -- c'est different sur d'autres architectures -- long double, c'est les float sur 80 bits (extended double pour IEEE 754).

    Il me semble que Windows utilise des long double de 64 bits, donc le meme format que les doubles..
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  15. #15
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Il me semble que Windows utilise des long double de 64 bits, donc le meme format que les doubles..
    Sous Windows on a les __int64

    [EDIT]
    Completement hors-sujet
    [/EDIT]
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  16. #16
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par Skyrunner
    Sous Windows on a les __int64
    Je ne vois pas le rapport avec les double/long double.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  17. #17
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Je ne vois pas le rapport avec les double/long double.
    Moi non plus en y repensant.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

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

Discussions similaires

  1. Plantage avec utilisation de long double
    Par thebop dans le forum Débuter
    Réponses: 9
    Dernier message: 17/06/2009, 11h39
  2. Pourquoi utiliser un Long ou un Double ?
    Par n!co dans le forum Langage
    Réponses: 7
    Dernier message: 21/02/2007, 17h52
  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