Limiter les décimales à deux chiffres

Signaler
Messages postés
114
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
11 février 2009
-
Messages postés
32
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
4 novembre 2006
-
j'effectue un calcul automatique suite à une formule et j'affiche le résultat qui est de type float dans un tedit,le pb est comment limiter le nombre de chiffres aprés la virgule à 2, je sais qu'il existe une fonction "floattodecimal" , mais j'ai pas pu l'utiliser, je ne comprend pas ses arguments.

6 réponses

Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
salut

pour formater l'affichage tu peux faire:

var value:real;

begin

value:=123.2568;

edit1.Text:=FloatToStrF(value,TFloatFormat(ffFixed),10,2);

end;

resultat= 123.26

ou TFloatFormat=Format à virgule fixe (pour d'autre format voir l'aide)

10 = la précision

2= le nombre de decimales affichées

bonne prog
Messages postés
308
Date d'inscription
mardi 11 juin 2002
Statut
Membre
Dernière intervention
26 septembre 2008

uses math;
procedure TForm1.FormCreate(Sender: TObject);
begin
edit1.Text:=FloatToStrF((9.948877777777777,-2),ffFixed,32);
end;

floatToStrF
renvoi une string c'est plus simple ainsi, mais comme notre valeur de décimal après le point
varie selon le cas, vaut mieux arrondir selon nos normes : car si on dépasse la précision ici 3 on arrondis et on perd le 9.94 en 10.00 ,

ensuite 2 spécifie que l'on veut 2 chiffre après la virgule ça ne pose aucun problème...
donc ici avec 9.948... on obtiens 9,95 ,c'est probablement acceptable pour tes besoins...
yve
Messages postés
308
Date d'inscription
mardi 11 juin 2002
Statut
Membre
Dernière intervention
26 septembre 2008

salut jlen100 lol

yve
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
nota:

pour la précision la valeur maxi depend du type choisi 15
pour les valeurs de type Double, et 18 pour les valeurs de type
Extended.

precision = nombre de chiffres à afficher
Messages postés
2
Date d'inscription
vendredi 7 mars 2003
Statut
Membre
Dernière intervention
4 octobre 2005

Salut,

Tu peux également utiliser Format
Ex :
Edit1.Text := Format('%.2f', [value]);

@+
Messages postés
32
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
4 novembre 2006

Oui, ou encore :

Edti1.Text := FormatFloat("#,###,##0.00", Value);


Ghislain "Sokoban" Martin
http://perso.wanadoo.fr/sokoban