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
1800
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
15 mai 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 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
3 août 2018
32
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 153 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Cirec
Messages postés
1800
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
15 mai 2019
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
2684
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
26 juillet 2018
10
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
2354
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
10
0
Merci
Si tu as cherché "haricot" ou "papier peint" ou "abri bus" je comprends que tu n'ai pas trouvé.
Par contre si tu cherches un TYPE de variable, alors tu trouveras de suite dans :
1- l'aide DELPHI (F1) avec le mot clé "TYPE" tous les types de variables et à quoi ils correspondent/servent.
2- google en cherchant avec ces mots clé "delphi nombre décimal conversion" ou aussi "TYPE DECIMAL DELPHI"
3- en utilisant la fonction recherche de delphifr.com calée sur "code" ou sur "forum" avec le mot clé "décimal" ou aussi "TYPE"

Bonne lecture, évite de poster inutilement =)

Mon site DELPHI =)
Commenter la réponse de JulioDelphi
Messages postés
900
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009
2
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
L'aide confirme bien ce qu'a dit  Caribensila c'est à dire d'utiliser des réel avec les types Single ou Double mais l'aide ne précise pas la syntaxe de la rédaction
Commenter la réponse de buguetj
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
4307
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
25
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
1800
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
15 mai 2019
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
1800
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
15 mai 2019
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