Bonjour,
Voici une fonction que j'ai créer pour arrondir un nombre réel :
Si Chiffre = 24.715, "Apres" sera donc égal à 71.5 lorsque la fonctionne appelera Fract := Round(Apres);.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Function Arrondi(Chiffre : Real; Decimal : Byte) : Real; Var Entier, Fract : LongInt; Apres : Real; Ct : Byte; xResult : Real; Code : LongInt; Begin Entier := Trunc(Chiffre); Apres := Chiffre - Entier; Code := 1; For Ct := 1 to Decimal do Code := Code * 10; Apres := Apres * Code; Fract := Round(Apres); xResult := Entier + (Fract / Code); Arrondi := xResult; End;
Pourquoi, Round me retourne donc 71 ??
J'ai essayer de facon independante :
Round arrondi bien à 72
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 procedure TEcranPrincipal.Button1Click(Sender: TObject); var Montant : Real; Resultat : LongInt; begin Montant := 71.5; Resultat := Round(Montant); ShowMessage(FloatToStr(Resultat)); end;
Je comprend pas trop la... j'ai fait bien des tests et je trouve rien.
Merci de votre aide
Partager