Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

problème de format avec system.string.format

6 réponses
Avatar
grome
Bonjour

Je rencontre un petit pb de format avec le code ci dessous

Je voudrais que la valeur (c'est un nombre) affiché dans la cellule soit
dans tous les cas, formaté avec deux chiffres après la virgule.
j'ai tenté d'utiliser System.string.format() mais sans succès. J'ai notament
essayé ceci system.string.format( {0 : ###0.00}, dr.getvalue(0).tostring())
System.Data.OleDb.OleDbDataReader dr = oleCmd.ExecuteReader();
while (dr.Read() && !dr.IsDBNull(0))
{
this.Table1.Rows[1].Cells[1].Text = dr.GetValue(0).ToString();
}
dr.Close();

6 réponses

Avatar
Nicolas TURPIN
La doc n'est pas claire à ce sujet !!

Essais donc cela :


string strValeur = String.Format("{0:0000.000}", 20.55);
donne en sortie "0020.550"





"grome" a écrit dans le message de
news:429f0440$0$28312$
Bonjour

Je rencontre un petit pb de format avec le code ci dessous

Je voudrais que la valeur (c'est un nombre) affiché dans la cellule soit
dans tous les cas, formaté avec deux chiffres après la virgule.
j'ai tenté d'utiliser System.string.format() mais sans succès. J'ai


notament
essayé ceci system.string.format( {0 : ###0.00},


dr.getvalue(0).tostring())
System.Data.OleDb.OleDbDataReader dr = oleCmd.ExecuteReader();
while (dr.Read() && !dr.IsDBNull(0))
{
this.Table1.Rows[1].Cells[1].Text = dr.GetValue(0).ToString();
}
dr.Close();




Avatar
grome
j'ai essayé ceci, a priori il tente bien le format met je n'ai pas les
chiffres apès la virgule
this.Table1.Rows[1].Cells[1].Text = System.String.Format( "{0:0000.00}",
dr.GetValue(0));







"Nicolas TURPIN" a écrit dans le message de
news:429f205a$0$11724$

La doc n'est pas claire à ce sujet !!

Essais donc cela :


string strValeur = String.Format("{0:0000.000}", 20.55);
donne en sortie "0020.550"





"grome" a écrit dans le message de
news:429f0440$0$28312$
> Bonjour
>
> Je rencontre un petit pb de format avec le code ci dessous
>
> Je voudrais que la valeur (c'est un nombre) affiché dans la cellule soit
> dans tous les cas, formaté avec deux chiffres après la virgule.
> j'ai tenté d'utiliser System.string.format() mais sans succès. J'ai
notament
> essayé ceci system.string.format( {0 : ###0.00},
dr.getvalue(0).tostring())
> System.Data.OleDb.OleDbDataReader dr = oleCmd.ExecuteReader();
> while (dr.Read() && !dr.IsDBNull(0))
> {
> this.Table1.Rows[1].Cells[1].Text = dr.GetValue(0).ToString();
> }
> dr.Close();
>
>




Avatar
Nicolas TURPIN
Et dans la configuration d'Excel, les nombres sont ils correctement
configurés ?

Si tu essais
this.Table1.Rows[1].Cells[1].Text = System.String.Format("{0:0000.000}",
20.55);

et que dans ta cellule tu n'as pas "0020.550", sans doute le PB vient de ta
config EXCEL.

Sinon, pas d'idée.


"grome" a écrit dans le message de
news:429f2656$0$3877$
j'ai essayé ceci, a priori il tente bien le format met je n'ai pas les
chiffres apès la virgule
this.Table1.Rows[1].Cells[1].Text = System.String.Format( "{0:0000.00}",
dr.GetValue(0));







"Nicolas TURPIN" a écrit dans le message de
news:429f205a$0$11724$
>
> La doc n'est pas claire à ce sujet !!
>
> Essais donc cela :
>
>
> string strValeur = String.Format("{0:0000.000}", 20.55);
> donne en sortie "0020.550"
>
>
>
>
>
> "grome" a écrit dans le message de
> news:429f0440$0$28312$
> > Bonjour
> >
> > Je rencontre un petit pb de format avec le code ci dessous
> >
> > Je voudrais que la valeur (c'est un nombre) affiché dans la cellule


soit
> > dans tous les cas, formaté avec deux chiffres après la virgule.
> > j'ai tenté d'utiliser System.string.format() mais sans succès. J'ai
> notament
> > essayé ceci system.string.format( {0 : ###0.00},
> dr.getvalue(0).tostring())
> > System.Data.OleDb.OleDbDataReader dr = oleCmd.ExecuteReader();
> > while (dr.Read() && !dr.IsDBNull(0))
> > {
> > this.Table1.Rows[1].Cells[1].Text = dr.GetValue(0).ToString();
> > }
> > dr.Close();
> >
> >
>
>




Avatar
grome
Je vois pas trop le rapport entre excel et visual studio .net
a moins que ce ne soit les options régionales.
Sinon j'ai tout de même vérifié et il n'y a pas de pbs de ce côté là.

merci
Avatar
St
Salut,

pas trop sur de comprendre le pb, mais si tu récupère un nombre, tu peux
le convertir en décimal et lui faire un Math.Round(TonNombre,2). Ainsi,
5 donnera 5,00.

St

grome a écrit :
Bonjour

Je rencontre un petit pb de format avec le code ci dessous

Je voudrais que la valeur (c'est un nombre) affiché dans la cellule soit
dans tous les cas, formaté avec deux chiffres après la virgule.
j'ai tenté d'utiliser System.string.format() mais sans succès. J'ai notament
essayé ceci system.string.format( {0 : ###0.00}, dr.getvalue(0).tostring())
System.Data.OleDb.OleDbDataReader dr = oleCmd.ExecuteReader();
while (dr.Read() && !dr.IsDBNull(0))
{
this.Table1.Rows[1].Cells[1].Text = dr.GetValue(0).ToString();
}
dr.Close();




Avatar
grome
En fait j'utilise un Decimal.ToString("F2") pour mettre en forme mes données
et cela fonctionne.

Il y a des surcharge ToString() à utiliser lorsqu'on l'utilise sur du
decimal


"St" a écrit dans le message de news:

Salut,

pas trop sur de comprendre le pb, mais si tu récupère un nombre, tu peux
le convertir en décimal et lui faire un Math.Round(TonNombre,2). Ainsi, 5
donnera 5,00.

St

grome a écrit :
Bonjour

Je rencontre un petit pb de format avec le code ci dessous

Je voudrais que la valeur (c'est un nombre) affiché dans la cellule soit
dans tous les cas, formaté avec deux chiffres après la virgule.
j'ai tenté d'utiliser System.string.format() mais sans succès. J'ai
notament
essayé ceci system.string.format( {0 : ###0.00},
dr.getvalue(0).tostring())
System.Data.OleDb.OleDbDataReader dr = oleCmd.ExecuteReader();
while (dr.Read() && !dr.IsDBNull(0))
{
this.Table1.Rows[1].Cells[1].Text = dr.GetValue(0).ToString();
}
dr.Close();