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++Builder Discussion :

prendre seulement 2 chiffres aprés la virgule


Sujet :

C++Builder

  1. #1
    Membre éclairé Avatar de devlopassion
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2006
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Août 2006
    Messages : 576
    Par défaut prendre seulement 2 chiffres aprés la virgule
    bonjour tlm,
    - je travail avec des réels qui peuvent avoir 3 ou 4 numéro aprés la virgule mais je vais affiché seulement 2 chiffre aprés la virgule.
    - est ce qu'il y a un moyen direct pour le fair ou il faut tous programmé
    Merci

  2. #2
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Regardes du côté de la fonction FormatFloat

  3. #3
    say
    say est déconnecté
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut
    ou RoundTo

  4. #4
    Membre éclairé Avatar de devlopassion
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2006
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Août 2006
    Messages : 576
    Par défaut
    merci beaucoup les amis
    - d'aprés ce que j'ai pu voir dans l'aide sur ces Fonction "FormatFloat et RoundTo" c'est exactement la solution de mon probleme
    - MAIS je suis vraiment null en anglais et le help de mon builder est en anglais
    - alors s'il vous plai si vous pouvais me donner un exemple
    - de ma part je vais attaquer la traduction
    Et encore Merci

  5. #5
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Voilà ta traduction
    Citation Envoyé par Aide sur FormatFloat en FR
    Formate une valeur à virgule flottante.

    Unité

    SysUtils

    Catégorie

    routines de conversion à virgule flottante

    extern PACKAGE AnsiString __fastcall FormatFloat(const AnsiString Format, Extended Value);

    Description

    FormatFloat définit le format de la valeur flottante Value en utilisant la chaîne de format fournie par Format. Les spécificateurs de format reconnus dans la chaîne de format sont les suivants :

    Spécificateur->Signification
    0->Emplacement d'un chiffre. Si la valeur formatée dispose d'un chiffre à la position du '0' dans la chaîne de format, ce chiffre est copié dans la chaîne en sortie. Sinon, un '0' est inclus à cette position dans la chaîne en sortie.
    #->Emplacement d'un chiffre. Si la valeur formatée dispose d'un chiffre à la position du '#' dans la chaîne de format, ce chiffre est copié dans la chaîne en sortie. Sinon, rien n'est inclus à cette position dans la chaîne en sortie.
    .->Séparateur décimal. Le premier caractère '.' dans la chaîne de format détermine l'emplacement du séparateur décimal dans la valeur formatée ; les caractères '.' supplémentaires sont ignorés. Le caractère effectivement utilisé comme séparateur décimal dans la chaîne en sortie est déterminé par la variable globale DecimalSeparator. La valeur par défaut de DecimalSeparator est définie dans le groupe Format des nombres de la section International du Panneau de configuration Windows.
    ,->Séparateur des milliers. Si la chaîne de format contient un ou plusieurs caractères ',', un séparateur des milliers sera inséré entre chaque groupe de trois chiffres situés à gauche de la virgule. L'emplacement et le nombre de caractères ',' dans la chaîne de format n'affecte en rien la sortie ; la présence de ce caractère indique simplement que les milliers doivent être séparés. Le caractère effectivement utilisé comme séparateur décimal dans la chaîne en sortie est déterminé par la variable globale ThousandSeparator. La valeur par défaut de ThousandSeparator est définie dans le groupe Format des nombres de la section International du Panneau de configuration Windows.
    E+->Notation scientifique. Si l'une des quatre chaînes 'E+', 'E-', 'e+' ou 'e-' est incluse dans la chaîne de format, le nombre est formaté en utilisant la notation scientifique. Un groupe de quatre caractères '0' au plus peut immédiatement suivre la chaîne 'E+', 'E-', 'e+' ou 'e-' afin de déterminer le nombre minimum de chiffres de l'exposant. Les spécificateurs de format 'E+' et 'e+' provoquent l'apparition d'un signe plus pour les exposants positifs et d'un signe moins pour les exposants négatifs. 'E-' et 'e-' ne provoquent l'apparition du signe que pour les exposants négatifs.
    'xx'/"xx"->Les caractères encadrés par des guillemets simples ou doubles sont renvoyés tels quels et n'affectent pas le format.
    ;->Sépare les sections des nombres positifs, négatifs et nuls dans la chaîne de format.

    Les emplacements du '0' le plus à gauche avant la virgule dans la chaîne de format et du '0' le plus à droite après cette même virgule déterminent l'étendue de chiffres qui seront toujours présents dans la chaîne en sortie.
    Le nombre formaté est toujours arrondi en fonction du nombre de décimales prévues ('0' ou '#') à droite de la virgule dans la chaîne de format. Si cette dernière ne contient pas de séparateur décimal, la valeur formatée est arrondie au nombre entier le plus proche.

    Si, dans la valeur numérique formatée, le nombre de chiffres à gauche de la virgule est supérieur à celui prévu à gauche du séparateur décimal '.' dans la chaîne de format, les chiffres en trop sont inclus avant l'emplacement du premier chiffre.
    La chaîne de format peut contenir une, deux ou trois sections séparées par des points-virgules pour autoriser des formats différents pour les valeurs positives, négatives et nulles.

    Une section : la chaîne de format s'applique à toutes les valeurs.
    Deux sections : la première section s'applique aux valeurs positives et nulles et la deuxième aux valeurs négatives.
    Trois sections : la première section s'applique aux valeurs positives, la deuxième aux valeurs négatives, et la troisième aux valeurs nulles.

    Si la section des valeurs négatives ou celle des valeurs nulles est vide (il n'y a rien entre les points-virgules qui délimite cette section), c'est la section des valeurs positives qui est utilisée.

    Si la section des valeurs positives est vide ou si la chaîne de format est vide dans son ensemble, la valeur est formatée en utilisant le format flottant général avec 15 chiffres significatifs, ce qui équivaut à un appel à FloatToStrF avec le format ffGeneral. Ce type de format est également utilisé si la valeur dispose de plus de 18 chiffres à gauche du séparateur décimal et si la chaîne de format n'indique pas la notation scientifique.

  6. #6
    Membre éclairé
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RoundTo(StrToFloat(asRemise),-2);
    asRemise est une AnsiString, je la transforme en Float en utilisant StrToFloat et RoundTo me renvoie le Float avec deux chiffres après la virgule. Si je n'ai pas compris de travers, c'est ce que tu veux.

  7. #7
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    Salut,
    Pour ton affichage, tu peux utiliser la fonction FloatToStrF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    extern PACKAGE AnsiString __fastcall FloatToStrF(Extended Value, TFloatFormat
     Format, int Precision, int Digits);
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FloatToStrF(Value, ffFixed, 6, 2);
    Pour Value valant 1,2345 la fonction retourne un AnsiString "1,23".

  8. #8
    Membre éclairé Avatar de devlopassion
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2006
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Août 2006
    Messages : 576
    Par défaut
    Merci les amis c'est vraiment trés gentil
    - mais malhereusement meme avec tous ces explication et ces exemple je n'est pas réussi a régler mon probleme :-(
    - oui je sait le probleme vient de moi mais apres tous ce temps j croi que vous vous etes habitués a moi (vraiment nulll mon probleme peut etre se situe dans la langue ou c moi qui suit tres lent a comprendre 70% la deuxieme)
    En tous cas encore merci camarades c'est trés gentil

  9. #9
    Membre éclairé Avatar de devlopassion
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2006
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Août 2006
    Messages : 576
    Par défaut
    avec roundto : j'ai le message function non déffini
    avec floattostrF :
    E2015 Ambiguïté entre '_fastcall Sysutils::FloatToStrF(long double,Sysutils::TFloatFormat,int,int)' et '_fastcall FloatToStrF(long double,Sysutils::TFloatFormat,int,int)'

    - bien sur je comprendrai bien si vous ne pouvais pas m'expliquer plus

  10. #10
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    Je ne vois pas trop le soucis pour le FloatToStrF, il me faudrait ton code pour mieux voir.
    Voilà un autre exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        float valeur = 1.234;
        Label1->Caption = FloatToStrF(valeur,ffFixed,4,2);
    cela affiche "1,23".
    Si cela peut t'aider...

  11. #11
    Membre éclairé
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Par défaut
    Pour RoundTo, il faut que tu inclus la bibliothèque nécessaire Pour l'autre fonction essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Label1->Caption = Sysutils::FloatToStrF(valeur,ffFixed,4,2);
    pour reprendre le code de BanditBoy.

  12. #12
    Membre éclairé Avatar de devlopassion
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2006
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Août 2006
    Messages : 576
    Par défaut
    Enfin j'ai prouvé a moi meme que je ne suis pas trop null mais seulement lent a comprendre
    voila la solution que j'ai trouvé en utilisant la fonction proposé par mon ami "bakaneko"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    String Forma(String a)
    {
    long double z = StrToFloat(a);
    s=FormatFloat("####,###.00",z);
    return s;
    }
    - il suffit apres d'appeler cette fonction avec comme paramettre la chaine à transformer ;-)

    GROS GROS MERCI A VOUS TOUS POUR VOS REPONSES ET VOTRE PATIENCE AVEC MOI

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 10/07/2012, 18h24
  2. [Débutant] seulement les 4 premiers chiffres après la virgule
    Par djamatique dans le forum MATLAB
    Réponses: 1
    Dernier message: 10/03/2011, 07h08
  3. Réponses: 2
    Dernier message: 26/06/2008, 11h21
  4. Recuperer seulement 2 chiffres apres la virgule.
    Par parp1 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 02/07/2007, 18h00
  5. [variable]obetenir seulement 2 chiffres après la virgule
    Par nejisama8 dans le forum VBA Access
    Réponses: 1
    Dernier message: 23/05/2007, 17h32

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