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 :

Séparer une valeur monétaire en deux


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 74
    Points : 68
    Points
    68
    Par défaut Séparer une valeur monétaire en deux
    Bonjour a tous

    Je cherche a séparer une valeur monétaire en deux nombres entiers (ex : 1025,60

    Récuper la partie avant la virgule donc 1025
    et l'autre partie 60

    merci de votre aide.

  2. #2
    Invité1
    Invité(e)
    Par défaut
    tu peux utiliser la fonction int qui va te donner la partie entiere d'un nombre

    int(1025,60) = 1025
    apres tu fais (1025,60 -1025)*100 = 60

    je ne sais pas si ça marche avec une valeur monétaire , faut essayer
    sinon faut la convertir en un reel.

    bonne chance

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 74
    Points : 68
    Points
    68
    Par défaut
    Bonjour Samy
    j'ai une erreur du compilateur.
    E2010 Types incompatibles : 'Integer' et 'Extended'
    merci

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 763
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 763
    Points : 13 381
    Points
    13 381
    Par défaut
    Int renvoi la partie entière sous forme d'un réel. Pour retourner un entier, utilise Trunc.

  5. #5
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var
      V, I, D : extended;
    begin
      V := 1025.60;
     
      I := int(1025.60); // = 1025
      D := frac(1025.60); // = 0.6
    end;

  6. #6
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    si tu utilise le type Currency, c'est en fait un Int64 dont les 4 derniers chiffre sont la partie decimale

    donc tu peuix t'en sortir comme ca (ya certainement + simple et efficace) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var
      c: Currency;
      Ent, Decim: integer;
    begin
      c := 1025.60;// = 10256000 en int64
      Ent := Trunc(Int64(c)/1000); //1025
      Decim := Int64(c) - Ent; //6000

  7. #7
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Tu peux aussi détecter la position du séparateur décimal, ensuite récupérer la partie de gauche et de droite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      ShowMessage(IntToStr(Pos(',', '278,60'))); // renvoi valeur = 4
    @+

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 74
    Points : 68
    Points
    68
    Par défaut
    Merci à tous pour votre aide.

    Problème résolu.

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

Discussions similaires

  1. Tester une valeur monétaire €
    Par Daniel MOREAU dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/04/2013, 10h58
  2. Formater une valeur monétaire
    Par dtcSearch dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/04/2009, 11h33
  3. Séparer une variable texte en deux
    Par Invité dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/03/2009, 13h39
  4. Réponses: 7
    Dernier message: 19/07/2008, 12h13
  5. Contrôle sur une valeur monétaire
    Par loverdev dans le forum VB.NET
    Réponses: 7
    Dernier message: 05/06/2007, 17h12

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