septembre
2007
J’ai eu une petite surprise hier :
J’avais une DataTable avec une colonne de type int qui correspondait à un pourcentage.
Je voulais qu’une DataGridView, avec ma DataTable comme DataSource, affiche la valeur de ma colonne suivi de %.
J’ai donc affecté un DataGridViewCellStyle à ma colonne (via la propriété DefaultCellStyle).
La liste des formats prédéfinie et proposée par le designer étant assez réduite, je me suis orienté vers un custom format : « # % ».
Et là surprise, les valeurs avaient été multipliées par 100 (à cause du format).
En soit c’est une bonne idée mais du coup, j’étais bien embêté.
J’ai donc dû feinter :
J’ai dit que le format de ma colonne était un format monétaire sans chiffre après la virgule (« C0″).
Ensuite, je me crée mon propre FormatInfo dans lequel je lui dit que ma devise c’est « % ».
formatInfo.CurrencySymbol = "%";
formatInfo.CurrencyPositivePattern = 3; // Affiche le % après la valeur
maColumn.DefaultCellStyle.FormatProvider = formatInfo;
Quelqu’un sait-il comment faire cela plus « normalement » ?
0 à la place de # permet d’avoir « 0 % » et non pas » % »
Sinon, on peut faire ça : « #,##0.00 %;#,##0.00 %;# »
Pour plus d’info sur cette syntaxe, voir le commentaire de Vonatar.
Avec @ »0 % » c’est encore mieux.
Effectivement.
Merci Gilles
En fait il suffit de mettre un anti-slash devant le % pour ne pas avoir de multiplication par 100.
Custom format avec @ »# % » devrait correspondre à ton besoin