Nombre décimaux [Résolu]

Signaler
Messages postés
78
Date d'inscription
lundi 25 octobre 2004
Statut
Membre
Dernière intervention
5 avril 2012
-
Messages postés
1719
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
6 août 2020
-
Bonjour, je voudrais savoir comment faire pour que quand on divise deux nombres le résultat soit un nombre décimal (à virgule).


J'ai essayer la fonction IntToStr et StrToInt mais aucune de ces deux fonction marche (c'est à dire que je n'ai qu'un nombre entier à la fin). et ni dans l'aide, ni dans le forum je n'ai trouvé se que je voulais.


Merci de aide à plus

8 réponses

Messages postés
3815
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
4 août 2020
35
Salut

pour obtenir un résultat à vigule il faut effectivement utiliser le type Real (où autres) mais faire attention à l'opérateur utilisé :

a Div b --> donnera toujours un entier
a / b --> donnera un résultat à vigule (bien sur en fonction des valeurs données à a et b)

 
@+
Cirec

<hr size="2" />
Messages postés
1719
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
6 août 2020
3
Attention, mod est le reste de la div.

Mais en y réfléchissant, et c'est très amusant, on peut faire (1 chiffre après la virgule) :

S := format('%d,%d',[A div B, ((A mod B) * 10) div B]);

Bonne prog'
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13
Bonjour,
Utilise des nombres réels avec les types Single ou Double, par exemple...
Messages postés
814
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009
3
dans l'aide de Delphi, il y a une rubrique (onglet de gauche pour naviguer par rubrique) appelée "guide du language Delphi", tu y trouverra les concept de base classé par thème.

Dans "type de donnée, variable et constante" il y a des explication plustot clair et complète sur les type de données. Tu y trouverra les réponses au question de ce type.

bonne lecture,

PS: j'ai Delphi en anglais, c'est possible que les noms que j'indique soit légèrement différent.
Messages postés
78
Date d'inscription
lundi 25 octobre 2004
Statut
Membre
Dernière intervention
5 avril 2012

A ok merci
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
30
ou encore :

S := format('%d,%d,[A div B, A mod B]);

<hr size="2" width="100%" />Croc (click me)
Messages postés
1719
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
6 août 2020
3
Et pour 2 chiffres après la virgule, je viens de vérifier :

S := format('%d,%d',[A div B, ((A mod B) * 100) div B]);

etc...

Ca m'éclate...
Messages postés
1719
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
6 août 2020
3
Si vous trouvez plus tordu, n'hésitez pas :

uses Math;

function Div2IntegersAndGetAFloat(const A, B: Integer;
  const Length: Byte = 2): Extended;
begin
  Result := StrToFloat(Format('%d,%d', [A div B, ((A mod B) * Trunc(IntPower(10, Length))) div B]));
end;