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 :

Comment afficher un montant avec les 0 à gauche


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Jeune retraité, anciennement Analyste fonctionnel Mainframe et développeur COBOL / BULL/IBM/HP
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Jeune retraité, anciennement Analyste fonctionnel Mainframe et développeur COBOL / BULL/IBM/HP

    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Points : 39
    Points
    39
    Par défaut Comment afficher un montant avec les 0 à gauche
    Bonjour à tous,

    J'aimerai affiché un montant au format XXX.YY
    Or quand j'ai un montant = 124.45 c'est OK
    mais quand j'ai un montant = 10 le résultat est 10.00
    J'aimerai obtenir 010.00

    Comment puis je faire pour ajouter le ou les zéros à gauche ?

    Merci
    HULK77

  2. #2
    Membre confirmé Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Points : 515
    Points
    515
    Par défaut
    Bonjour,

    Pour cela, tu peux utiliser la fonction sprintf. Tu testes ton montant à afficher et s'il est inférieur à 100 tu utilses le format "0%.2f" qui veut dire un zero puis ton nombre avec 2 chiffres après la virgule. Sinon tu utilises le format "%.2f" qui n'ajoute pas de zéro.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    use strict;
     
    my @prix = (124.25,10.00);
     
    foreach my $montant(@prix){
     
      if($montant < 100){
        print(sprintf("0%.2f\n",$montant));
      }
      else{
        print(sprintf("%.2f\n",$montant));
      }
    }
    Tu peux aussi récupérer le retour de sprintf dans une variable.

  3. #3
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Quitte à utiliser sprintf autant l'utiliser jusqu'au bout et automatiser l'ajout de 0 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    use strict;
     
    my @prix = (124.25, 10);
     
    foreach my $montant(@prix){
      printf "%06.02f\n", $montant;
    }
     
    __END__
    --
    Jedaï

  4. #4
    Membre confirmé Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Points : 515
    Points
    515
    Par défaut
    Effectivement, c'est beaucoup plus simple comme cela. Ca m'a fait un petit rappel sur le "sprintf" et les formats qu'il utilise

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Jeune retraité, anciennement Analyste fonctionnel Mainframe et développeur COBOL / BULL/IBM/HP
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Jeune retraité, anciennement Analyste fonctionnel Mainframe et développeur COBOL / BULL/IBM/HP

    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Points : 39
    Points
    39
    Par défaut Concernant mon pb pour afficher un ZERO à gauche
    Merci ca marche !

    Ce que j'ai fait : %03.2f pour le MT ligne[6]

    printf FIC_PFO "$ligne3[0],%02d,%02d,$ligne3[3],$ligne3[4],$ligne3[5],%03.2f,$ligne3[7],$ligne3[8],$ligne3[9],$ligne3[10],$ligne3[11]\n"
    ,$ligne3[1],$ligne3[2],$ligne3[6];

    Cordialement

    HULK77

  6. #6
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {
      local $" = ",";
      printf FIC_PFO "$ligne3[0],%02d,%02d,@ligne3[3..5],%03.2f,@ligne3[7..11]\n" , @ligne3[1,2,6];
    }
    ou peut-être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf "%s,%02d,%02d,%s,%s,%s,%03.2f,%s,%s,%s,%s,%s", @ligne3[0..11];
    --
    Jedaï

Discussions similaires

  1. Réponses: 13
    Dernier message: 19/01/2006, 10h06
  2. Réponses: 1
    Dernier message: 15/11/2005, 15h01
  3. Comment afficher dans une combobox les driver des imprimante
    Par lassad dans le forum Composants VCL
    Réponses: 3
    Dernier message: 18/10/2005, 08h56
  4. Comment afficher du texte avec swing ?
    Par meda dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 27/10/2004, 14h35
  5. PL/SQL - Comment afficher une image avec HTP ?
    Par patmaba dans le forum PL/SQL
    Réponses: 2
    Dernier message: 08/07/2004, 09h28

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