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 :

format d'affichage


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 32
    Points : 20
    Points
    20
    Par défaut format d'affichage
    Bonjour,

    j'aurais aimé savoir s'il est possible en C d'afficher un double au format suivant : 1.666e-33. Avec %e, il donne systématiquement 3 digits a l'exposant au lieu de 2 : 1.666e-033

    Merci,


    Gael.

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    %.3E ?
    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.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 32
    Points : 20
    Points
    20
    Par défaut
    %.3E donne trois decimales, mais c'est pas ca qui va forcer a 3 le nombre de digits de l'exposant.

  4. #4
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Un extrait de la doc issue d'OpenGroup :

    The double argument shall be converted in the style "[-]d.ddde±dd", where there is one digit before the radix character (which is non-zero if the argument is non-zero) and the number of digits after it is equal to the precision;
    En gros, pour ton problème ça ressemblerait plus à : %3.e

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 32
    Points : 20
    Points
    20
    Par défaut
    Je voudrais qu'il affiche : 1.5e-33 et pas 1.5e-033. Je veux un exposant a 2 digits et pas a 3 digits.

    %.2e et %2.e ne permettent pas de faire cela (je viens encore d'essayer).

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Points : 84
    Points
    84
    Par défaut
    Si tu mets un grand E à la place du petit e, de memoire, il y a une difference mais je ne sais plus laquel.

  7. #7
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Désolé, je n'avais pas compris cela.

    En fait, je crois que ça ne va pas être possible directement avec printf. En tout cas, pas à ma connaissance.

    Désolé.

    En fait le grand E, ne fait qu'afficher un grand E à la sortie (au lieu d'un petit).

  8. #8
    Membre habitué Avatar de Marco85
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 210
    Points : 187
    Points
    187
    Par défaut
    Citation Envoyé par PRomu@ld
    En fait, je crois que ça ne va pas être possible directement avec printf. En tout cas, pas à ma connaissance.
    J'ai rerelu encore certains documents relatifs à ce genre de "bidouille" et je crois bien, comme PRomu@ld, que ce n'est pas directement possible avec printf.

    Marco85
    If you cannot explain a concept to a six year-old, then you do not fully understand it. [Albert Einstein]

  9. #9
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    C'est bizarre que sur ton ordinateur il affiche 3 chiffre après l'exposant. Par contre, si tu veux vraiment juste deux chiffre, pourquoi ne pas écrire ton nombre flottant dans une chaîne de caractères.

    Parcourir la chaîne à l'envers et compter le nombre de chiffres de l'exposant, s'il y en a 3 et qu'il y a un 0 inutile, décaler les deux autres chiffres?

    Et ensuite afficher le nombre?

    Jc

  10. #10
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Ca serait une astuce en effet, mais il faudrait gérer ça en fonction du nombre de digit affiché dans l'exposant. Sur ma machine, je n'ai que deux exposants lors de l'affichage.

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

Discussions similaires

  1. MP3 File Format pour affichage spectre (image sonore)
    Par TISSEYRE dans le forum Langage
    Réponses: 1
    Dernier message: 27/09/2005, 14h50
  2. DBGrid et format d'affichage des colonnes
    Par jakouz dans le forum Composants VCL
    Réponses: 3
    Dernier message: 03/08/2005, 14h10
  3. Formater l'affichage d'un fichier
    Par devdev2003 dans le forum Linux
    Réponses: 3
    Dernier message: 28/06/2005, 17h47
  4. [CR8] Problème de Format d'affichage
    Par khabch dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 19/02/2004, 14h10
  5. [VB6] [Flexgrid] Format d'affichage des numériques
    Par yansolo dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/10/2002, 21h00

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