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

Delphi Discussion :

Du formatage des nombres


Sujet :

Delphi

  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Points : 238
    Points
    238
    Par défaut Du formatage des nombres
    Bonjour,

    J'éprouve certaines difficulté à formater correctement les nombres dans mon application. J'aimerais utiliser un masque :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String mask := '#'+SysUtils.thousandSeparator+'#0.00'
    Mais l'affichage (des valeurs sur des axes d'un TChart) me donnent
    1#.00, 2#.00, etc.
    Le SysUtils.thousandSeparator agit comme si j'avais mis directement une apostrophe (qui est le thousandSeparator par défaut dans mon Windows). J'ai essayé en doublant ou quadruplant l'apostrophe, mais cela ne corrige pas le problème.

    Pouvez-vous me faire part de votre expérience avec ces problèmes ou m'orienter vers de l'aide ? Merci d'avance

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    as tu essayé avec la fonction format

    format('#%s#0,00',[SysUtils.thousandSeparator]);
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  3. #3
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut !

    Et ceci irait-il ?
    @+

  4. #4
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Points : 238
    Points
    238
    Par défaut
    Citation Envoyé par anapurna
    salut
    as tu essayé avec la fonction format
    format('#%s#0,00',[SysUtils.thousandSeparator]);
    Je suis malheureusement obligé d'utiliser un mask dans mon cas.

    Citation Envoyé par Claudius
    mask := ',#0.00";
    Ce mask là marche, mais alors là je suis largué. Comment se fait-il que la virgule soit automatiquement remplacée par une apostrophe ? Et comment puis-je faire maintenant si je veux utiliser une virgule comme séparateur de millers ?

    Je présume que le fait de mettre la virgule dans le masque fait utiliser le séparateur de milliers par défaut, c'est exact ?

  5. #5
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par MiJack
    Je présume que le fait de mettre la virgule dans le masque fait utiliser le séparateur de milliers par défaut, c'est exact ?
    Salut,
    C'est exactement ça !!

    @+

  6. #6
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par MiJack
    Et comment puis-je faire maintenant si je veux utiliser une virgule comme séparateur de millers ?
    Tout simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       ThousandSeparator := ',';
    [EDIT]
    en général on sauvegarde la variable d'environnement actuelle, on applique celle souhaitée pour ensuite la restaurer en fin de traitement.
    [/EDIT]

    @+

  7. #7
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Points : 238
    Points
    238
    Par défaut
    Très intéressant tout ça. Merci pour tes explications.

  8. #8
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    la fonction format sert a formate ton masq

    mask := format(....,[...]);

    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  9. #9
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Citation Envoyé par Claudius40
    en général on sauvegarde la variable d'environnement actuelle, on applique celle souhaitée pour ensuite la restaurer en fin de traitement.
    [/EDIT]
    T'es sûr de ce que tu avances? Il me semblait que la redéfinition de ces variables n'affectait que le programme qui la modifie.
    Puisque ces valeurs sont établies au démùarrage du programme, il me semble qu'il est inutile de remettre l'ancienne valeur une fois le traitrement terminé
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  10. #10
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Exact Pedro !

    Je n'ai pas été suffisement explicite. Effectivement les variables n'affectent que le programme en cours.

    Cependant dans certains cas on peut avoir besoin de modifier une variable temporairement et devoir ensuite la rétablir à son état original.

    Exemple: le séparateur décimal lors d'une procédure exportation vers un fichier text.
    On bascule du séparateur ',' au séparateur '.' pour ensuite revenir à la ',' afin de ne pas perturber le formatage des nombres dans l'appli.

    Cette remarque peut également s'appliquer au séparateur des milliers.

    Voilà !
    @+ Claudius

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

Discussions similaires

  1. Formatage des nombres
    Par od.dev dans le forum Langage
    Réponses: 4
    Dernier message: 09/04/2008, 18h40
  2. Formatage des nombres (Separateurs)
    Par Mysti¢ dans le forum Général Python
    Réponses: 2
    Dernier message: 31/03/2008, 10h18
  3. Formatage des nombres
    Par webrider dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/08/2007, 09h59
  4. formatage des nombres hexas (pading?)
    Par bulki dans le forum C
    Réponses: 1
    Dernier message: 10/05/2007, 07h20
  5. Formatage des nombres à l'affichage
    Par nbutin dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 13/07/2004, 10h54

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