Salut
pour calculer le prix unitaire moyen pondéré, je dois avoir la forumule suivante à appliquer sur deux tables "retour " et "reception"
pump:=la somme (quantité*prix) /quantité totale;
voici le code :
le problème c'est qu'il m'affiche que c'est une opération à virgukle flotante incorrecte
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 procedure TForm1.qtefExit(Sender: TObject); var pin,prein,pump:currency; qtotal,qt1,qt2: integer; begin pin:=0; prein:=0; pump:=0; qtotal:=0; qt1:=0; qt2:=0; pbretour.first; while not pbretour.eof do begin if(inttostr(pbretour.fieldbyname('code_pro').asinteger)=codbox.Text) and ((pbretour.fieldbyname('etat').asstring='i') or (pbretour.fieldbyname('etat').asstring=''))then begin pin:=pin+pbretour.fieldbyname('prix').ascurrency; qt1:=qt1+pbretour.fieldbyname('qt').asinteger; end; pbretour.next; end; pin:=pin/qt1; pbrecept.first; while not pbrecept.eof do begin if(inttostr(pbrecept.fieldbyname('code_pro').asinteger)=codbox.Text) and ((pbrecept.fieldbyname('etat').asstring='i') or (pbrecept.fieldbyname('etat').asstring=''))then begin prein:=prein+pbrecept.fieldbyname('prix').ascurrency; qt2:=qt2+pbrecept.fieldbyname('qt').asinteger; end; pbrecept.next; end; prein:=prein/qt2; pump:=prein+pin; pumpout.value:=pump; end;
et je ne veux aps suivre le conseil d'un amis qu m'a dit d'arrondir les valeurs, car c'est de l'argent que je manipule!
aidez-moi!
Partager