Bonjour;
j'affiche une table qui a des champs de type : Real avec 2 chiffre après la virgule.
mon problème c'est quand j'affiche cette table dans un DBGrid il me donne plein de chiffre après la virgule
est ce que vous avez une idée?
Merci
Bonjour;
j'affiche une table qui a des champs de type : Real avec 2 chiffre après la virgule.
mon problème c'est quand j'affiche cette table dans un DBGrid il me donne plein de chiffre après la virgule
est ce que vous avez une idée?
Merci
Quel est ton format de table ?
Le problème le plus courant est lié au fait que les formats décimaux sont stockés dans des réel et que comme un ordinateur travaille en base 2 il ne sait pas stocker dans ce format le nombre 0,1.
Donc il arrondi à 14 décimales près ou plus.
Donc tu peux jouer sur l'affichage uniquement. Donc tu peux par exemple afficher un champ calculé à la place de ton champ si ta table est en lecture seule.
j'ai une table faite en SQL server2005
mais je n'ai pas compris comment je peut jouer sur l'affichage??
Salut,
Essaye en définissant ton champs de type float, chez moi je n'ai aucun soucis d'affichage avec ce format.
A+.
Pour l'histoire des nombres réels :
Tu peux changer la valeur 8 par un nombre compris entre 1 et 9 pour voir le problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 DECLARE @v1 real SELECT @v1 = 1 SELECT @V1 = @V1 / 8 SELECT ROUND(@V1,3)
Pour l'affichage tu peux soit créer une vue sur ta table en SQL, pour convertir l'affichage de ton champ du style.
Pour la méthode que je t'ai indiqué plus haut je vais essayer de te retrouver un bout de code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT CONVERT (decimal (5, 2), @V1)
bonjour
il est possible par code d'initialiser les champs numériques:
à plus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 with DBGrid1 do begin for i := 0 to fieldcount - 1 do begin if Columns[i].FieldName = 'Truc' then TNumericField(Fields[i]).DisplayFormat := '#0'; if Columns[i].FieldName = 'Machin' then TNumericField(Fields[i]).DisplayFormat := '#0.00'; ......
bonjour
le code que j'ai donné est interressant lorsque l'utilisateur déplace les colonnes
(à déclancher dans le OncolumnMoved du DbGrid), il permet de conserver les formats en fonction des champs et non pas de la position des colonnes.
à plus
Bonjour;
Pour un DBgrid la méthode la plus simple est la suivante mais a condition que ton champ soit un Real;
tu click 2 fois sur le composant Ttable relié a ton DBgrid ,une boite de dialogue s'ouvre tu sélectionne ton champ Real en suite à ta gauche dans l'inspecteur d'Objet tu prends la porietés DisplayeFormat: tu donne le format nécessaire.
exp: 22 000 000,00 doit avoir le format #,##0.00
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager