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

Langage Perl Discussion :

pb sprintf


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 102
    Points : 53
    Points
    53
    Par défaut pb sprintf
    Bonjour,
    Je voudrais savoir comment transformer 0.055 en 00.055. Je sais qu'avec sprintf on peut faire cela mais je n'y arrive pas.

    $sec=sprintf("%2.3f",0.055);

    Merci de votre aide

  2. #2
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut Re: pb sprintf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sec=sprintf("%02.3f",0.055);
    Avec les balises [ code ] et [ /code ], pour une meilleure lisibilité

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 102
    Points : 53
    Points
    53
    Par défaut
    Désolé, mais cela ne marche pas....
    Une autre idée??

  4. #4
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Citation Envoyé par peuf23
    Désolé, mais cela ne marche pas....
    Une autre idée??
    Si, ça marche très bien, à condition de ne pas se gourer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sec=sprintf("%06.3f",0.055);
    c'est mieux ...

    En fait, le chiffre qui suit le séparateur "." : 3 indique le nombre de décimales (la précision).

    Le chiffre qui précède le séparateur (6 pour moi tu avais mis 2) indique la largeur minimale de la chaine résultante. Si tes décimales sont plus nombreuses que cela, elles sont ajoutées quand même. C'est pour cela que %2.3f sort bien 0.055.

    Par contre, le 0 qui suit le % indique qu'il faut complèter à gauche avec des zéros. Cependant, on ne peut complèter à gauche que s'il reste de la place : 0.055 sorti en %02.3f s'affiche donc 0.055, faute de place, alors qu'en %06.3f, cela sort en 00.055 (0.055 occupe 5 positions, la 6e est alors complètée par un 0).

    J'ai commis l'erreur de rajouter le 0 sans toutefois élargir le champ ... mais quand même, tenter de faire rentrer 3 décimales dans un champ de 2 positions, c'était chaud, non ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 102
    Points : 53
    Points
    53
    Par défaut
    Oui, ca marche

    ... Et merci pour tes explications

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

Discussions similaires

  1. Connaitre la taille du résultat de sprintf
    Par gege2061 dans le forum C
    Réponses: 6
    Dernier message: 09/01/2006, 14h56
  2. [SQL] LIKE dans un sprintf ...
    Par banzaii dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 23/11/2005, 16h57
  3. [Débutant(e)] equivalence de sprintf en JAVA
    Par GuillaumeCorbineau dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 06/09/2005, 19h18
  4. [débutant] equivalent à sprintf pour les std::string
    Par Biosox dans le forum SL & STL
    Réponses: 22
    Dernier message: 26/08/2005, 12h46
  5. sprintf : le point devient virgule ?!
    Par jula dans le forum C++
    Réponses: 4
    Dernier message: 17/09/2004, 12h50

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