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 :

Nombre décimal sans la virgule


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 34
    Points : 17
    Points
    17
    Par défaut Nombre décimal sans la virgule
    je cherche cette commande sur delphi

    vb6
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private x As Double
    Private y As Double
     
     
    Private Sub Command1_Click()
    x = Text1.Text * 100
    y = Int(Text1.Text)
    If y * 100 < x Then
    Text2.Text = x
    Else: Text2.Text = Text1.Text
    End If
    End Sub

  2. #2
    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

    Tu es certain que c'est bien ce code !
    Car si je comprends bien la condition du IF est toujours à False, donc cela se résume à:
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    Text2.Text = Text1.Text



    @+ Claudius

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    Moi, aussi, je ne connaissans pas le VB, j'ai des doutes sur la solution, le code est si mal indenté !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    x = Text1.Text * 100
    y = Int(Text1.Text)
    je suppose vu le titre, que tu veux tronquer la valeur décimale, genre 123.45, tu veux 123, tu l'avais donc sous les yeux ... Int ou Trunc


    Sinon, en Delphi, si tu fais Edit1.Text, il faut faire un StrToFloat ...

    consulte donc l'aide, avec l'onglet "Recherche", avec "arrondi entier", tu aurais trouvé
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    je veux tronquer la valeur décimale, genre 123,45 qui devient 12345.
    enfaite j'ai besoin d'enlever la virgule, mais j'ai des valeur du genre 123,45 (juste multiplier par 100), et j'ai des valeur du genre 123 mais si je multiplie par 100 ça me donne 12300

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Salut,

    nombre decimal sans la virgule, en supposant que dans 123645,78 la manip ne consiste pas à supprimer la virgule en conservant 12364578, lol (on a déjà vu plein de questions bizarres ici )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var  x,y : Double; code : integer;
     
    procedure Tagada;
    begin 
             val(Text1.Text, x, code); // convertit la variable Texte1.text si elle est du type string vers x de type Double
             if code = 0 then // alors la conversion s'est bien passée, sinon code=position du caractère erronné.
             begin x:= .... // x devient utilisable
                     x:=round(x); // x arrondi donc sans la virgule
                     ou x:=trunc(x); // x tronqué à partir de la virgule
                     // et pour arrondir vers le haut ou vers le bas il y aussi
                     x:=Ceil(x);
                     x:=Floor(x); 
             end;
    end;
    A+

    P.S : ouille ça bouge vite ici
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    ça me répond pas à ma réponse

    Citation Envoyé par totoff80 Voir le message
    je veux tronquer la valeur décimale, genre 123,45 qui devient 12345.
    enfaite j'ai besoin d'enlever la virgule, mais j'ai des valeur du genre 123,45 (juste multiplier par 100), et j'ai des valeur du genre 123 mais si je multiplie par 100 ça me donne 12300 alors qu'il me faut 123

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Bête et méchant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function VirerLaVirgule( var MaValeur: Double );
    var
     S: String;
    begin
     S := FloatToStr( MaValeur );
     S := StringReplace( S, ',', '', [rfReplaceAll] );
     MaValeur := StrToFloat( S );
    end;
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  8. #8
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Salut,

    totoff80 a écrit :
    je veux tronquer la valeur décimale, genre 123,45 ... mais ... alors qu'il me faut 123
    ... ben suffit d'utiliser Trunc() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.SpeedButton1Click(Sender: TObject);
    var       MaValeur: Double;
    begin     Mavaleur:=123.45;    //<- chez moi DécimalSepartor:='.'
              ou Mavaleur:=123,45; //<-  si chez toi DécimalSepartor:=','
              Mavaleur:=Trunc(Mavaleur);
              showMessage(FloatToStr(Mavaleur)); //<- affiche 123
    end;
    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  9. #9
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Non non Gilbert, relis bien ce qu'il a dit si il y a des valeurs 123.45 et qu'il multiplie par 100, c'est bon ça marche mais si il a des valeurs style 123 et bien ça ne marche plus puisqu'il obtient 12300 pour avoir multiplié par 100, fort logiquement.

    Donc c'est vraiment un "virer la virgule" et non un truncate même si je m'interroge toujours sur l'utilité de ça mais bon.
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  10. #10
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Bonjour,

    En fait l'énoncé du problème à résoudre n'est pas clair :
    je veux tronquer la valeur décimale, genre 123,45 qui devient 12345.
    ... ça supposerait que ce résultat de 12345 lui convient dans le cas du 123.45

    ... et j'ai des valeur du genre 123 mais si je multiplie par 100 ça me donne 12300 alors qu'il me faut 123
    ... j'en déduis que dans le 1er cas il veut multiplier par 100 et pas dans ce 2ème cas.
    ... bigre, ça donne un mélange de valeurs multipliées par 100 et d'autres qui restent inchangées : autant mélanger des mètres avec des centimètres.
    ... mais après tout si tel est son objectif il suffit de faire un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if pos(DécimalSeparator,maChaine)>0 then ...
    avant de multiplier par 100 en enlevant sa virgule.

    A +
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  11. #11
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    C'est aussi une possibilité
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

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

Discussions similaires

  1. Afficher un nombre décimal avec une virgule ?
    Par Mister Paul dans le forum Langage
    Réponses: 1
    Dernier message: 21/01/2011, 19h29
  2. Recherche Virgule dans un nombre décimal
    Par malouxa dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/04/2009, 15h05
  3. Conversion nombre décimal en virgule flottante IEEE 754 (exprimé en hexa)
    Par vinssieux dans le forum Macros et VBA Excel
    Réponses: 36
    Dernier message: 15/05/2008, 09h40
  4. [Nombre]formater le nombre de décimal après une virgule.
    Par PascalCmoa dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 09/03/2007, 10h40
  5. [VB6] Récupération d'un nombre décimal sans le point
    Par valie dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 30/08/2006, 10h20

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