begin process at 2008 08 29 20:16:09
1 233 870 membres
392 nouveaux aujourd'hui
14 294 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Diviser une variable integer [ Algorithme / Maths ] (elt93)

Diviser une variable integer le 18/04/2008 19:40:49

elt93
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.

Re : Diviser une variable integer le 18/04/2008 20:07:59

cirec
Membre Club
(Admin CS)
Salut,

c''est normal ... l'aide de Delphi aurait également pu te répondre

pour diviser les entiers il faut utiliser Div
b := b Div 100

ou alors changer de variable:
Var e : Extended;

e := b / 100

regarde aussi du coté de (dans l'aide de Delphi):
 Trunc, Round, FloatToStr, StrToFloat et Format

 
@+
Cirec


Re : Diviser une variable integer le 18/04/2008 20:26:49

elt93
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 !


Re : Diviser une variable integer le 18/04/2008 21:09:11

cirec
Membre Club
(Admin CS)
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;

et tu testes
 
@+
Cirec


Re : Diviser une variable integer le 18/04/2008 22:00:35

elt93
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.



Re : Diviser une variable integer le 18/04/2008 22:41:49

cirec
Membre Club
(Admin CS)
Réponse acceptée !
Change :
d:= '1.'+floattostr(b);
en
d:= '1,'+floattostr(b);

Regarde aussi ceci:
http://www.delphifr.com/infomsg_POINT-VIRGULE_444343.aspx

 
@+
Cirec



Classé sous : text, variable, integer, strtoint, diviser

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS