Nombre décimaux [Résolu]

Messages postés
78
Date d'inscription
lundi 25 octobre 2004
Statut
Membre
Dernière intervention
5 avril 2012
- - Dernière réponse : japee
Messages postés
1715
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
2 décembre 2019
- 4 nov. 2006 à 22:43
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
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
3809
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
1 septembre 2019
34
3
Merci
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" />

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 202 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Cirec
Messages postés
1715
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
2 décembre 2019
2
1
Merci
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'
Commenter la réponse de japee
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13
0
Merci
Bonjour,
Utilise des nombres réels avec les types Single ou Double, par exemple...
Commenter la réponse de Caribensila
Messages postés
814
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009
3
0
Merci
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.
Commenter la réponse de cs_Loda
Messages postés
78
Date d'inscription
lundi 25 octobre 2004
Statut
Membre
Dernière intervention
5 avril 2012
0
Merci
A ok merci
Commenter la réponse de buguetj
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
26
0
Merci
ou encore :

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

<hr size="2" width="100%" />Croc (click me)
Commenter la réponse de f0xi
Messages postés
1715
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
2 décembre 2019
2
0
Merci
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...
Commenter la réponse de japee
Messages postés
1715
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
2 décembre 2019
2
0
Merci
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;
Commenter la réponse de japee