elt93
Messages postés46Date d'inscriptionjeudi 13 mars 2008StatutMembreDernière intervention 9 février 2009
-
18 avril 2008 à 19:40
elt93
Messages postés46Date d'inscriptionjeudi 13 mars 2008StatutMembreDernière intervention 9 février 2009
-
18 avril 2008 à 22:00
Bonjour,
J'aimerais faire un petit calcul en delphi :
var
a: integer;
b: integer;
c: integer;
begin
a:= strtoint(nini.Text);
b:= strtoint(p.Text);
if red.Checked then
b:= b/100;
c:= a*b;
Memo1.Lines.Add(inttostr(c));
end;
Ce que j'aimerais faire c'est diviser la valeur de la variable b par 100 mais lorsque j'execute il me dit type incompatible integer et extended incompatible. Je suppose que le "/" n'est pas le bon signe de division.
Pourriez vous m'aider svp,
cordialement.
elt93
Messages postés46Date d'inscriptionjeudi 13 mars 2008StatutMembreDernière intervention 9 février 2009 18 avril 2008 à 20:26
Merci Cirec,
J'ai fait comme tu m'as dit mais lorsque que je fais b div 100 la valeur de b devient 0. Du coup j'ai été dans l'aide et comme indiqué j'ai créé :
function Diviser(X, Y: Integer): Integer; overload;
begin
Result := X div Y;
end;
puis à la place de b div 100, j'ai mis :
Diviser(b, 100)
Mais la valeur de b devient toujours 0 !
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 18 avril 2008 à 21:09
C'est normal
Div ne renvoie que [la partie entière d'une division]:
5 / 100 = 0.05
5 Div 100 = [0].05
pour avoir la valeur réelle if faut changer de type de variable. Ex.
Sur une fiche (nouvelle application) tu pose deux TLabel
et un TButton
Tu double cliques sur le bouton et tu complètes comme suit:
procedure TForm1.Button1Click(Sender: TObject);
Var a, b, c : Integer;
E : Extended;
begin a := 5;
b := 7;
C := (b Div 100) * a;
Label1.Caption : = IntToStr(c);
E := (b / 100) * a;
Label2.Caption := FloatToStr(E);
end ;
elt93
Messages postés46Date d'inscriptionjeudi 13 mars 2008StatutMembreDernière intervention 9 février 2009 18 avril 2008 à 22:00
Merci encore cirec,
Comme vous l'avez surement remarqué, je calcule des pourcentages precedemment c'etait pour effectuer des réductions et maintenant pour l'augmentation j'ai encore un probleme, voivi le code :
var
a: integer;
b: extended;
c: extended;
d: string;
begin
a:= strtoint(nini.Text);
b:= strtofloat(p.Text);
d:= '1.'+floattostr(b);
b:= strtofloat(d);
c:= a*b;
Memo1.Lines.Add(floattostr(c));
end;
Si je rends 50 pour p.Text soit b, le resultat est 1.50 et quand j'appuie sur le boutton j'ai un message d'erreur :
'1.50' n'est pas une valeur flottante correct.