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 Delphi Discussion :

Comment diviser un integer ?


Sujet :

Langage Delphi

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 28
    Points : 0
    Points
    0
    Par défaut Comment diviser un integer ?
    Bonjour,

    Je développe une application de gestion de stock sous Delphi 7 et j'utilise paradox 7 ,
    Voila mon code pour calculer le poids des d'épices :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if CheckBox3.checked=True then
    datas.Query4.Active:=true;
    fiche_vente.table1.Edit;
    fiche_vente.table1.FieldByName('tot_poid').AsInteger:=
    ((datas.Query4.fieldbyname('scg_1').AsInteger)*(fiche_vente.table1.FieldByName('s_1').AsInteger)+
    (datas.Query4.fieldbyname('scg_2').AsInteger)*(fiche_vente.table1.FieldByName('s_2').AsInteger)+
    (datas.Query4.fieldbyname('scg_3').AsInteger)*(fiche_vente.table1.FieldByName('s_3').AsInteger)+
    (datas.Query4.fieldbyname('scg_4').AsInteger)*(fiche_vente.table1.FieldByName('s_4').AsInteger)+
    (datas.Query4.fieldbyname('scg_5').AsInteger)*(fiche_vente.table1.FieldByName('s_5').AsInteger)+
    (datas.Query4.fieldbyname('scg_6').AsInteger)*(fiche_vente.table1.FieldByName('s_6').AsInteger));
    *****
    Ce code me donne le poids en kg alors que je voudrais diviser lé résultat par 1000 pour me donner la bonne valeur.

  2. #2
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 965
    Points
    6 965
    Par défaut
    Et quel est le problème ?
    Si tu ajoutes un ... div 1000 au bout, ça ne marche pas ?
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  3. #3
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Sinon, AsFloat
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 28
    Points : 0
    Points
    0
    Par défaut bounjour tous
    j'ai ajouter /1000 devant chaque '+' mais sa marche pas , exemp :
    ((datas.Query4.fieldbyname('scg_1').AsInteger)*(fiche_vente.table1.FieldByName('s_1').AsInteger)/1000+

  5. #5
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Java/Delphi
    Inscrit en
    Mars 2010
    Messages
    698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java/Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 698
    Points : 1 608
    Points
    1 608
    Billets dans le blog
    4
    Par défaut
    Utilise Round si tu veux garder un Integer, sinon le AsFloat comme le dit tourlourou.
    Il est plus facile de diviser le résultat par 1000 que chaque opérations par 1000 ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    fiche_vente.table1.FieldByName('tot_poid').AsInteger:= round(
    ((datas.Query4.fieldbyname('scg_1').AsInteger)*(fiche_vente.table1.FieldByName('s_1').AsInteger)+
    (datas.Query4.fieldbyname('scg_2').AsInteger)*(fiche_vente.table1.FieldByName('s_2').AsInteger)+
    (datas.Query4.fieldbyname('scg_3').AsInteger)*(fiche_vente.table1.FieldByName('s_3').AsInteger)+
    (datas.Query4.fieldbyname('scg_4').AsInteger)*(fiche_vente.table1.FieldByName('s_4').AsInteger)+
    (datas.Query4.fieldbyname('scg_5').AsInteger)*(fiche_vente.table1.FieldByName('s_5').AsInteger)+
    (datas.Query4.fieldbyname('scg_6').AsInteger)*(fiche_vente.table1.FieldByName('s_6').AsInteger)) / 1000);

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

    le div donne la division entière
    le / donne la division reel
    et mod donne le reste de la division

    après il existe d'autre fonction pour rendre ta division réel sous forme d'entier
    voir ici

    selon ce que tu veut faire tu as toutes les possibilité de le faire
    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

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 28
    Points : 0
    Points
    0
    Par défaut Bonjour à tous
    Est-ce que je peux intégrer ce calcul comme une fonction, à appeler par un clic de bouton ou une CheckBox ?

  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

    bien sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Function Calcul(ds1,ds2 : TDataset) : Integer;
    begin
     result := round(
    ((ds1.fieldbyname('scg_1').AsInteger)*(ds2.FieldByName('s_1').AsInteger)+
    (ds1.fieldbyname('scg_2').AsInteger)*(ds2.FieldByName('s_2').AsInteger)+
    (ds1.fieldbyname('scg_3').AsInteger)*(ds2.FieldByName('s_3').AsInteger)+
    (ds1.fieldbyname('scg_4').AsInteger)*(ds2.FieldByName('s_4').AsInteger)+
    (ds1.fieldbyname('scg_5').AsInteger)*(ds2.FieldByName('s_5').AsInteger)+
    (ds1.fieldbyname('scg_6').AsInteger)*(ds2.FieldByName('s_6').AsInteger)) / 1000);
    end;
    dans la methode onclick

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fiche_vente.table1.FieldByName('tot_poid').AsInteger:= Calcul(datas.Query4,fiche_vente.table1);
    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

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/08/2006, 15h07
  2. Réponses: 2
    Dernier message: 10/06/2006, 13h46
  3. comment diviser mon application access en 2 partie
    Par Soulghard dans le forum Access
    Réponses: 4
    Dernier message: 10/01/2006, 10h26
  4. Comment peut on integer des controles dans un prog opengl
    Par franck31400 dans le forum OpenGL
    Réponses: 2
    Dernier message: 28/04/2004, 09h06
  5. [debutant] Comment afficher un integer a l'ecran
    Par Johngame dans le forum DirectX
    Réponses: 1
    Dernier message: 05/06/2003, 20h35

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