Algumas strings de formatação podem parecer confusas, como {0,-8:G2} e outras bem estranhas, quase engraçadas do tipo "{0:p}".

Mas o que isso exatamente faz?

Resposta:

O format String obedece a seguinte regra:

"{indice[,alinhamento][:<formato><zeros>]}"

=> indice: representa a posição que a string vai assumir.

Ex.:

C#:

String.Format("Campeão: {0}, Vice:{1}","Botafogo","Vasco");
// Campeão: Botafogo, Vice: Vasco

=> alinhamento: representa o tamanho mínimo da string, fazendo o alinhamento a esquerda (valores negativos) ou a direita (valores positivos), caso a string não tenha tamanho suficiente, a mesma será "shiftada" com espaços.

C#:

String.Format("{0,-10}", "bola");      //"bola      "
String.Format("{0,10}", "bola");       //"      bola"

Formato: representa o código de formatação.

Alguns exemplos:

C#:

int pos = 10;
int neg = -10;
int bigpos = 123456;
int bigneg = -123456;
int zero = 0;
string strInt = "120ab";

String.Format("{0:00000}", pos);      //"00010"
String.Format("{0:00000}", neg);      //"-00010"
String.Format("{0:00000}", bigpos);   //"123456"
String.Format("{0:00000}", bigneg);   //"-123456"
String.Format("{0:00000}", zero);     //"00000"
String.Format("{0:00000}", strInt);   //"120ab"
String.Format("{0:#####}", pos);      //"10"
String.Format("{0:#####}", neg);      //"-10"
String.Format("{0:#####}", bigpos);   //"123456"
String.Format("{0:#####}", bigneg);   //"-123456"
String.Format("{0:#####}", zero);     //""
String.Format("{0:#####}", strInt);   //"120ab"

zeros (optional): Nao tem uma definição exata, depende do tipo de formatação usada.

C#:

int neg = -10;
int pos = 10;

// C or c (Currency/Moeda)
String.Format("{0:C4}", pos);      //"R$10.0000"
String.Format("{0:C4}", neg);      //"(R$10.0000)"

// D or d (Decimal)
String.Format("{0:D4}", pos);      //"0010"
String.Format("{0:D4}", neg);      //"-0010"

// E or e (Exponential/Exponencial)
String.Format("{0:E4}", pos);      //"1.0000E+001"
String.Format("{0:E4}", neg);      //"-1.0000E+001"

// F or f (Fixed-point/ponto flutuante)
String.Format("{0:F4}", pos);      //"10.0000"
String.Format("{0:F4}", neg);      //"-10.0000"

// G or g (General/Geral)
String.Format("{0:G4}", pos);      //"10"
String.Format("{0:G4}", neg);      //"-10"

// N or n (Number/Número)
String.Format("{0:N4}", pos);      //"10.0000"
String.Format("{0:N4}", neg);      //"-10.0000"

// P or p (Percent/Percentual)
String.Format("{0:P4}", pos);      //"1,000.0000%"
String.Format("{0:P4}", neg);      //"-1,000.0000%"

// X or x (Hex)
String.Format("{0:X4}", pos);      //"000A"
String.Format("{0:X4}", neg);      //"FFFFFFF6"
Tags: .net, c#

Endereço de trackback para este post

Trackback URL (clique direito e copie atalho/localização do link)

4 comentários

Comentário de: Max Mustang [Visitante] · http://dadossujos.wordpress.com
e ae.. po cara...
to tentando formatar isso:

txtValor.Text =String.Format("{0:D2}", reader["SALDO"].ToString());

digamos que eu ponha 5 na textbox.. o saldo
fica 5,0000
T-T

se tu poder me ajudar

flw
21.10.08 @ 06:49
Comentário de: mrxrsd [Membro] Email
Olá,

Você quer formatar no padrão #.## ?

txtValor.Text = String.Format("{0:C2}", reader.getFloat(reader["SALDO"]); // R$ 5,00
txtValor.Text = String.Format("{0:F2}", reader.getFloat(reader["SALDO"]); // 5,00
21.10.08 @ 07:05
Comentário de: paula [Visitante] Email
o meu fica com o Símbolo $ como deixar com o símbolo de Real R$???????????????
27.02.09 @ 05:18
Comentário de: mrxrsd [Membro] Email
Olá Paula,

você pode forçar que ele pegue o padrão brasileiro desse jeito:

String.Format(CultureInfo.GetCultureInfo("pt-BR").NumberFormat,"{0:C4}", 1);

porém o ideal é que voce configure o cultureInfo pelo seu webconfig ou até mesmo nas diretivas da página.
27.02.09 @ 05:29

Esse post tem 2 feedbacks esperando moderação...

Deixe seu comentário


Seu endereço de e-mail não será revelado nesse site.

Sua URL será exibida.
(Quebras de linha se tornam <br />)
(Nome, e-mail & website)
(Permitir que usuários o contatem através de um formulário eletrônico (seu e-mail não será exibido.))