Sequências de Caracteres de Formato Numérico Padrão
Sequências de Caracteres de Formatação Numérica Padrão são usadas para formatar tipos numéricos comuns. Uma sequência de caracteres de formato numérico padrão assume a forma Axx, onde A é um caractere alfabético chamado de especificador de formato e xx é um inteiro opcional chamado de especificador de precisão. O especificador de precisão varia de 0 a 99 e afeta o número de dígitos no resultado. Qualquer sequência de caracteres de formato numérico que contenha mais de um caractere alfabético, incluindo espaço em branco, é interpretada como uma sequência de formato numérico personalizado. Para obter mais informações, consulte Sequências de Caracteres de Formato Numérico Personalizado.
Seqüências de caracteres de formato numérico padrão são suportadas por algumas sobrecargas do ToString o método de todos os tipos numéricos. Por exemplo, você pode fornecer uma seqüência de caracteres de formato numérico para o ToString(String) e ToString(String, IFormatProvider) métodos para a Int32 tipo. Também há suporte para seqüências de caracteres de formato numérico padrão do.NET Framework composto recurso formatação, que é usado por alguns Write e WriteLine métodos para a Console e StreamWriter classes, o String.Format método e o StringBuilder.AppendFormat método.
Observação
Você pode baixar o O utilitário de formato, seqüências de caracteres de um aplicativo que permite que você aplique o formato numérico ou a data e hora, valores e exibe a seqüência de resultado.
A tabela a seguir descreve os especificadores de formato numérico padrão e exibe exemplos de saída produzidas por cada especificador de formato. Consulte o anotações seção para obter informações adicionais sobre como usar seqüências de caracteres de formato numérico padrão e o exemplo seção para obter uma ilustração abrangente de seu uso.
Especificador de Formato |
Nome |
Descrição |
Exemplos |
---|---|---|---|
"C" ou "c" |
Moeda |
Resultado: Um valor de moeda. Suporte: Todos os tipos numéricos. Especificador de precisão: Número de dígitos decimais. Especificador de precisão padrão: Definido pelo System.Globalization.NumberFormatInfo. Mais informações: O especificador de formato de moeda ("C"). |
123.456 ("C" en-US) - > US $123.46 123.456 ("C" fr-FR) - > 123,46 € 123.456 ("C", ja-JP) - > ¥ 123 -123.456 ("C3", en-US) - > (US $123.456) -123.456 ("C3", fr-FR) - > -123,456 € -123.456 ("C3", ja-JP) - > -¥ 123.456 |
"D" ou "d" |
Decimal |
Resultado: Dígitos de inteiro com sinal de negativo opcional. Suporte: Somente tipos integrais. Especificador de precisão: Número mínimo de dígitos. Especificador de precisão padrão: Número mínimo de dígitos necessários. Mais informações: O especificador de formato de Decimal("D"). |
1234 ("D") - > 1234 -1234 ("D6") - > -001234 |
"E" ou "e" |
Exponencial (científica) |
Resultado: Notação exponencial. Suporte: Todos os tipos numéricos. Especificador de precisão: Número de dígitos decimais. Especificador de precisão padrão: 6. Mais informações: O especificador de formato exponencial ("E"). |
1052.0329112756 ("E" en-US) - > 1.052033E + 003. 1052.0329112756 ("e", fr-FR) - > 1, 052033e + 003 -1052.0329112756 ("e2", en-US) - > -1.05e + 003. -1052.0329112756 ("E2", fr_FR) - > -1, 05E + 003 |
"F" ou "f" |
Ponto fixo |
Resultado: Dígitos integrais e decimais com sinal de negativo opcional. Suporte: Todos os tipos numéricos. Especificador de precisão: Número de dígitos decimais. Especificador de precisão padrão: Definido pelo System.Globalization.NumberFormatInfo. Mais informações: O especificador de formato ponto fixo ("F"). |
1234.567 ("F" en-US)-> 1234,57 1234.567 ("F" de-DE)-> 1234,57 1234 ("f1" en-US)-> 1234.0 1234 ("f1" de-DE)-> 1234,0 -1234.56 ("F4", en-US) - > -1234.5600 -1234.56 ("F4", de-DE) - > -1234,5600 |
"G" ou "g" |
Geral |
Resultado: Mais compacto de notação de ponto fixo ou científica. Suporte: Todos os tipos numéricos. Especificador de precisão: Número de dígitos significativos. Especificador de precisão padrão: Depende do tipo numérico. Mais informações: O especificador de formato geral ("G"). |
-123.456 ("G", en-US) - > -123.456 123.456 ("G", SE a VA) - > -123,456 123.4546 ("g4" en-US)-> 123.5 123.4546 ("g4" sv-SE)-> 123,5 -1.234567890e - 25 ("G", en-US) - > -1.23456789E-25 -1.234567890e - 25 ("G", SE a VA) - > -1, 23456789E-25. |
"N" ou "n" |
Número |
Resultado: Dígitos decimais e de integrais, separadores de grupo e um separador decimal com sinal de negativo opcional. Suporte: Todos os tipos numéricos. Especificador de precisão: Número desejado de casas decimais. Especificador de precisão padrão: Definido pelo System.Globalization.NumberFormatInfo. Mais informações: O especificador de formato numérico ("N"). |
1234.567 ("N" en-US) - > 1.234,57 1234.567 ("N", ru-RU) - > 1 234,57 1234 ("N" en-US) - > 1,234.0 1234 ("N", ru-RU) - > 1 234,0 -1234.56 ("N" en-US) - > -1,234.560 -1234.56 ("N", ru-RU) - > -234,560 1 |
"P" ou "p" |
Porcentagem |
Resultado: Número multiplicado por 100 e exibido com um símbolo de porcentagem. Suporte: Todos os tipos numéricos. Especificador de precisão: Número desejado de casas decimais. Especificador de precisão padrão: Definido pelo System.Globalization.NumberFormatInfo. Mais informações: O especificador de formato de porcentagem ("P"). |
1 ("P" en-US)-> 100,00 % 1 ("P" fr-FR)-> 100,00% -0.39678 ("P1", en-US) - > -39.7 % -0.39678 ("P1", fr-FR) - > -39,7% |
"R" ou "r" |
Processamento |
Resultado: Uma seqüência de caracteres pode viagem para um número idêntico. Suporte: Single, Double, and BigInteger. Especificador de precisão: Ignorado. Mais informações: O especificador de formato de viagem ("R"). |
123456789.12345678 ("R") - > 123456789.12345678 -1234567890.12345678 ("R") - > -1234567890.1234567 |
"X" ou "x" |
Hexadecimal |
Resultado: Uma string hexadecimal. Suporte: Somente tipos integrais. Especificador de precisão: Número de dígitos na seqüência de resultado. Mais informações: O HexaDecimal ("X") especificador de formato. |
255 ("X") - > TT -1 ("x") - > TT 255 ("x 4")-> 00FF -1 ("X 4")-> 00FF |
Qualquer outro caractere único |
Especificador desconhecido |
Resultado: Lança um FormatException em tempo de execução. |
Usando cadeias de caracteres de formato numérico padrão
Uma seqüência de caracteres de formato numérico padrão pode ser usada para definir a formatação de um valor numérico em uma das duas maneiras:
Ele pode ser passado para uma sobrecarga de ToString método que possui um format parâmetro. O exemplo a seguir formata um valor numérico como uma seqüência de moeda na cultura atual (no caso, o en-US).
Dim value As Decimal = 123.456d Console.WriteLine(value.ToString("C2")) ' Displays $123.46
decimal value = 123.456m; Console.WriteLine(value.ToString("C2")); // Displays $123.46
Pode ser fornecido como o formatString parâmetro em um item do formato usado com esses métodos como String.Format, Console.WriteLine, e StringBuilder.AppendFormat. Para obter mais informações, consulte Formatação Composta. O exemplo a seguir usa um item de formato para inserir um valor de moeda em uma seqüência de caracteres.
Dim value As Decimal = 123.456d Console.WriteLine("Your account balance is {0:C2}.", value) ' Displays "Your account balance is $123.46."
decimal value = 123.456m; Console.WriteLine("Your account balance is {0:C2}.", value); // Displays "Your account balance is $123.46."
As seções a seguintes fornecem informações detalhadas sobre cada uma das seqüências de caracteres de formato numérico padrão.
O especificador de formato de moeda ("C")
O "C" (ou moeda) especificador de formato converte um número como uma seqüência que representa o valor da moeda. O especificador precisão indica o número de casas decimais na seqüência de resultado desejado. Se o especificador precisão for omitido, a precisão padrão é definida pelo NumberFormatInfo.CurrencyDecimalDigits propriedade.
Se o valor a ser formatado tem mais do que o especificado ou o número padrão de casas decimais, o valor fracionário é arredondado na seqüência de resultado. Se o valor à direita do número de casas decimais especificado for 5 ou superior, o último dígito na seqüência de resultado é arredondado longe do zero.
A seqüência de caracteres de resultado é afetada por informações de formatação do atual NumberFormatInfo objeto. A tabela a seguir listas os NumberFormatInfo Propriedades que controlam a formatação da seqüência de caracteres retornada.
Propriedade NumberFormatInfo |
Descrição |
---|---|
Define o posicionamento do símbolo da moeda para valores positivos. |
|
Define o posicionamento do símbolo da moeda para valores negativos e especifica se o sinal negativo é representado pelos parênteses ou o NegativeSign propriedade. |
|
Define o sinal negativo usado se CurrencyNegativePattern indica que os parênteses não são usadas. |
|
Define o símbolo de moeda. |
|
Define o número de dígitos decimais padrão em um valor monetário. Esse valor pode ser substituído usando o especificador de precisão. |
|
Define a seqüência de caracteres que separa os dígitos integrais e decimais. |
|
Define a seqüência de caracteres que separa grupos de números integrais. |
|
Define o número de dígitos de inteiro que aparecem em um grupo. |
O exemplo a seguir formata um valor Double com o especificador de formato de moeda.
Dim value As Double = 12345.6789
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture))
Console.WriteLine(value.ToString("C3", CultureInfo.CurrentCulture))
Console.WriteLine(value.ToString("C3", _
CultureInfo.CreateSpecificCulture("da-DK")))
' The example displays the following output on a system whose
' current culture is English (United States):
' $12,345.68
' $12,345.679
' kr 12.345,679
double value = 12345.6789;
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture));
Console.WriteLine(value.ToString("C3", CultureInfo.CurrentCulture));
Console.WriteLine(value.ToString("C3",
CultureInfo.CreateSpecificCulture("da-DK")));
// The example displays the following output on a system whose
// current culture is English (United States):
// $12,345.68
// $12,345.679
// kr 12.345,679
Volta à tabela
O especificador de formato Decimal ("D")
O "D" (ou decimal) especificador de formato converte um número como uma seqüência de dígitos decimais (0-9), prefixado por um sinal de subtração se o número for negativo. Esse formato é suportado apenas para tipos inteiros.
O especificador de precisão indica o número mínimo de dígitos desejados na sequência resultante. Se necessário, o número é preenchido com zeros à esquerda para produzir o número de dígitos fornecido pelo especificador de precisão. Se nenhum especificador precisão for especificada, o padrão é o valor mínimo necessário para representar o número inteiro sem zeros à esquerda.
A seqüência de caracteres de resultado é afetada por informações de formatação do atual NumberFormatInfo objeto. Como mostra a tabela a seguir, uma única propriedade afeta a formatação da seqüência de caracteres de resultado.
Propriedade NumberFormatInfo |
Descrição |
---|---|
Define a seqüência de caracteres que indica que é um número negativo. |
Os formatos de exemplo a seguir um Int32 valor com o especificador de formato decimal.
Dim value As Integer
value = 12345
Console.WriteLine(value.ToString("D"))
' Displays 12345
Console.WriteLine(value.ToString("D8"))
' Displays 00012345
value = -12345
Console.WriteLine(value.ToString("D"))
' Displays -12345
Console.WriteLine(value.ToString("D8"))
' Displays -00012345
int value;
value = 12345;
Console.WriteLine(value.ToString("D"));
// Displays 12345
Console.WriteLine(value.ToString("D8"));
// Displays 00012345
value = -12345;
Console.WriteLine(value.ToString("D"));
// Displays -12345
Console.WriteLine(value.ToString("D8"));
// Displays -00012345
Volta à tabela
O especificador de formato exponencial ("E")
O especificador de formato exponencial ("E") converte um número em uma seqüência de caracteres do formulário "-d.ddd…E + ddd" ou "-d.ddd…e+ddd", onde cada "d" indica um dígito (0-9). A sequência inicia com um sinal de menos se o número for negativo. Exatamente um dígito sempre precede o ponto decimal.
O especificador de precisão indica o número desejado de dígitos após o ponto decimal. Se o especificador de precisão for omitido, um padrão de seis dígitos após o ponto decimal é usado.
No caso do especificador de formato indica se o expoente com "E" de prefixo ou "e". O expoente sempre é constituído de um sinal de mais ou de menos e um mínimo de três dígitos. O exponente é preenchido com zeros para atender esse mínimo, se necessário.
A seqüência de caracteres de resultado é afetada por informações de formatação do atual NumberFormatInfo objeto. A tabela a seguir listas os NumberFormatInfo Propriedades que controlam a formatação da seqüência de caracteres retornada.
Propriedade NumberFormatInfo |
Descrição |
---|---|
Define a seqüência de caracteres que indica que é um número negativo para o coeficiente e um expoente. |
|
Define a seqüência de caracteres que separa o dígito integral de dígitos decimais o coeficiente. |
|
Define a seqüência de caracteres que indica que um expoente é positivo. |
Os formatos de exemplo a seguir um Double valor com o especificador de formato exponencial.
Dim value As Double = 12345.6789
Console.WriteLine(value.ToString("E", CultureInfo.InvariantCulture))
' Displays 1.234568E+004
Console.WriteLine(value.ToString("E10", CultureInfo.InvariantCulture))
' Displays 1.2345678900E+004
Console.WriteLine(value.ToString("e4", CultureInfo.InvariantCulture))
' Displays 1.2346e+004
Console.WriteLine(value.ToString("E", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 1,234568E+004
double value = 12345.6789;
Console.WriteLine(value.ToString("E", CultureInfo.InvariantCulture));
// Displays 1.234568E+004
Console.WriteLine(value.ToString("E10", CultureInfo.InvariantCulture));
// Displays 1.2345678900E+004
Console.WriteLine(value.ToString("e4", CultureInfo.InvariantCulture));
// Displays 1.2346e+004
Console.WriteLine(value.ToString("E",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 1,234568E+004
Volta à tabela
O especificador de formato ponto fixo ("F")
O especificador de formato ponto fixo ("F) converte um número em uma seqüência de caracteres do formulário"-ddd.ddd… " onde cada "d" indica um dígito (0-9). A sequência inicia com um sinal de menos se o número for negativo.
O especificador de precisão indica o número de casas decimais desejadas. Se o especificador precisão for omitido, o atual NumberFormatInfo.NumberDecimalDigits propriedade fornece precisão numérica.
A seqüência de caracteres de resultado é afetada por informações de formatação do atual NumberFormatInfo objeto. A tabela a seguir lista as propriedades da NumberFormatInfo objeto que controlam a formatação da seqüência de resultado.
Propriedade NumberFormatInfo |
Descrição |
---|---|
Define a seqüência de caracteres que indica que é um número negativo. |
|
Define a seqüência de caracteres que separa os dígitos integrais de dígitos decimais. |
|
Define o número padrão de dígitos decimais. Esse valor pode ser substituído usando o especificador de precisão. |
O exemplo a seguir formata um valor Double e um valor Int32 com o especificador de formato de ponto fixo.
Dim integerNumber As Integer
integerNumber = 17843
Console.WriteLine(integerNumber.ToString("F", CultureInfo.InvariantCulture))
' Displays 17843.00
integerNumber = -29541
Console.WriteLine(integerNumber.ToString("F3", CultureInfo.InvariantCulture))
' Displays -29541.000
Dim doubleNumber As Double
doubleNumber = 18934.1879
Console.WriteLine(doubleNumber.ToString("F", CultureInfo.InvariantCulture))
' Displays 18934.19
Console.WriteLine(doubleNumber.ToString("F0", CultureInfo.InvariantCulture))
' Displays 18934
doubleNumber = -1898300.1987
Console.WriteLine(doubleNumber.ToString("F1", CultureInfo.InvariantCulture))
' Displays -1898300.2
Console.WriteLine(doubleNumber.ToString("F3", _
CultureInfo.CreateSpecificCulture("es-ES")))
' Displays -1898300,199
int integerNumber;
integerNumber = 17843;
Console.WriteLine(integerNumber.ToString("F",
CultureInfo.InvariantCulture));
// Displays 17843.00
integerNumber = -29541;
Console.WriteLine(integerNumber.ToString("F3",
CultureInfo.InvariantCulture));
// Displays -29541.000
double doubleNumber;
doubleNumber = 18934.1879;
Console.WriteLine(doubleNumber.ToString("F", CultureInfo.InvariantCulture));
// Displays 18934.19
Console.WriteLine(doubleNumber.ToString("F0", CultureInfo.InvariantCulture));
// Displays 18934
doubleNumber = -1898300.1987;
Console.WriteLine(doubleNumber.ToString("F1", CultureInfo.InvariantCulture));
// Displays -1898300.2
Console.WriteLine(doubleNumber.ToString("F3",
CultureInfo.CreateSpecificCulture("es-ES")));
// Displays -1898300,199
Volta à tabela
O especificador de formato geral ("G")
O especificador de formato geral ("G") converte um número em notação de ponto fixo ou científica, dependendo do tipo do número e se houver um especificador de precisão mais compacta. O especificador precisão define o número máximo de dígitos significativos que podem aparecer na seqüência de resultado. Se o especificador precisão for omitido ou zero, o tipo do número determina a precisão padrão, conforme indicado na tabela a seguir.
Tipo numérico |
Precisão padrão |
---|---|
3 dígitos |
|
5 dígitos |
|
10 dígitos |
|
19 dígitos |
|
20 dígitos |
|
29 dígitos |
|
7 dígitos |
|
15 dígitos |
|
29 dígitos |
A notação de ponto fixo é usada se o expoente que resultaria ao expressar o número na notação científica é maior do que -5 e menor que o especificador de precisão; caso contrário, a notação científica é usada. O resultado contém um ponto decimal, se necessário, e os zeros à direita após o ponto decimal são omitidos. Se o especificador precisão está presente e a precisão especificada excede o número de dígitos significativos o resultado, os dígitos à direita em excesso são removidos, arredondando.
No entanto, se o número é um Decimal e o especificador precisão for omitido, notação de ponto fixo é sempre usada e zeros à direita são preservados.
Se for usada a notação científica, expoente no resultado é prefixado com "E" Se o especificador de formato é "G" ou "e" Se o especificador de formato é "g". O expoente contém um mínimo de dois dígitos. Isso difere do formato de notação científica que é produzido pelo especificador de formato exponencial, o que inclui um mínimo de três dígitos no expoente.
A seqüência de caracteres de resultado é afetada por informações de formatação do atual NumberFormatInfo objeto. A tabela a seguir listas os NumberFormatInfo Propriedades que controlam a formatação da seqüência de resultado.
Propriedade NumberFormatInfo |
Descrição |
---|---|
Define a seqüência de caracteres que indica que é um número negativo. |
|
Define a seqüência de caracteres que separa os dígitos integrais de dígitos decimais. |
|
Define o número padrão de dígitos decimais. Esse valor pode ser substituído usando o especificador de precisão. |
|
Define a seqüência de caracteres que indica que um expoente é positivo. |
O exemplo a seguir formata valores de ponto flutuante variados com o especificador de formato geral.
Dim number As Double
number = 12345.6789
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays 12345.6789
Console.WriteLine(number.ToString("G", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 12345,6789
Console.WriteLine(number.ToString("G7", CultureInfo.InvariantCulture))
' Displays 12345.68
number = .0000023
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays 2.3E-06
Console.WriteLine(number.ToString("G", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 2,3E-06
number = .0023
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays 0.0023
number = 1234
Console.WriteLine(number.ToString("G2", CultureInfo.InvariantCulture))
' Displays 1.2E+03
number = Math.Pi
Console.WriteLine(number.ToString("G5", CultureInfo.InvariantCulture))
' Displays 3.1416
double number;
number = 12345.6789;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 12345.6789
Console.WriteLine(number.ToString("G",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 12345,6789
Console.WriteLine(number.ToString("G7", CultureInfo.InvariantCulture));
// Displays 12345.68
number = .0000023;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 2.3E-06
Console.WriteLine(number.ToString("G",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 2,3E-06
number = .0023;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 0.0023
number = 1234;
Console.WriteLine(number.ToString("G2", CultureInfo.InvariantCulture));
// Displays 1.2E+03
number = Math.PI;
Console.WriteLine(number.ToString("G5", CultureInfo.InvariantCulture));
// Displays 3.1416
Volta à tabela
O especificador de formato numérico ("N")
O especificador de formato numérico ("N") converte um número em uma seqüência de caracteres do formulário "-d,ddd,ddd.ddd…", onde "-" indica um símbolo de número negativo, se necessário, "d" indica um dígito (0-9) "," indica um separador de grupo, e "." indica um símbolo de ponto decimal. O especificador de precisão indica o número desejado de dígitos após o ponto decimal. Se o especificador precisão for omitido, o número de casas decimais é definido pelo atual NumberFormatInfo.NumberDecimalDigits propriedade.
A seqüência de caracteres de resultado é afetada por informações de formatação do atual NumberFormatInfo objeto. A tabela a seguir listas os NumberFormatInfo Propriedades que controlam a formatação da seqüência de resultado.
Propriedade NumberFormatInfo |
Descrição |
---|---|
Define a seqüência de caracteres que indica que é um número negativo. |
|
Define o formato de valores negativos e especifica se o sinal negativo é representado pelos parênteses ou o NegativeSign propriedade. |
|
Define o número de dígitos integrais que aparecem entre os separadores de grupo. |
|
Define a seqüência de caracteres que separa grupos de números integrais. |
|
Define a seqüência de caracteres que separa os dígitos integrais e decimais. |
|
Define o número padrão de dígitos decimais. Esse valor pode ser substituído por meio de um especificador de precisão. |
O exemplo a seguir formata valores de ponto flutuante variados com o especificador de formato numérico.
Dim dblValue As Double = -12445.6789
Console.WriteLine(dblValue.ToString("N", CultureInfo.InvariantCulture))
' Displays -12,445.68
Console.WriteLine(dblValue.ToString("N1", _
CultureInfo.CreateSpecificCulture("sv-SE")))
' Displays -12 445,7
Dim intValue As Integer = 123456789
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture))
' Displays 123,456,789.0
double dblValue = -12445.6789;
Console.WriteLine(dblValue.ToString("N", CultureInfo.InvariantCulture));
// Displays -12,445.68
Console.WriteLine(dblValue.ToString("N1",
CultureInfo.CreateSpecificCulture("sv-SE")));
// Displays -12 445,7
int intValue = 123456789;
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture));
// Displays 123,456,789.0
Volta à tabela
O especificador de formato de porcentagem ("P")
O especificador de formato porcentagem ("P") multiplica um número por 100 e o converte em uma seqüência de caracteres que representa um percentual. O especificador de precisão indica o número de casas decimais desejadas. Se o especificador precisão for omitido, a precisão numérica padrão fornecido pelo atual PercentDecimalDigits propriedade é usada.
A tabela a seguir listas os NumberFormatInfo Propriedades que controlam a formatação da seqüência de caracteres retornada.
Propriedade NumberFormatInfo |
Descrição |
---|---|
Define o posicionamento do símbolo de porcentagem para valores positivos. |
|
Define o posicionamento do símbolo de porcentagem e o símbolo de negativo para valores negativos. |
|
Define a seqüência de caracteres que indica que é um número negativo. |
|
Define o símbolo de porcentagem. |
|
Define o número de dígitos decimais padrão em um valor de porcentagem. Esse valor pode ser substituído usando o especificador de precisão. |
|
Define a seqüência de caracteres que separa os dígitos integrais e decimais. |
|
Define a seqüência de caracteres que separa grupos de números integrais. |
|
Define o número de dígitos de inteiro que aparecem em um grupo. |
O exemplo a seguir formata valores de ponto flutuante variados com o especificador de formato de percentagem.
Dim number As Double = .2468013
Console.WriteLine(number.ToString("P", CultureInfo.InvariantCulture))
' Displays 24.68 %
Console.WriteLine(number.ToString("P", _
CultureInfo.CreateSpecificCulture("hr-HR")))
' Displays 24,68%
Console.WriteLine(number.ToString("P1", CultureInfo.InvariantCulture))
' Displays 24.7 %
double number = .2468013;
Console.WriteLine(number.ToString("P", CultureInfo.InvariantCulture));
// Displays 24.68 %
Console.WriteLine(number.ToString("P",
CultureInfo.CreateSpecificCulture("hr-HR")));
// Displays 24,68%
Console.WriteLine(number.ToString("P1", CultureInfo.InvariantCulture));
// Displays 24.7 %
Volta à tabela
O especificador de formato de viagem ("R")
O especificador de formato de ida e volta ("R") garante que um valor numérico que é convertido em uma seqüência de caracteres será analisado volta para o mesmo valor numérico. Este formato é suportado somente para o Single, Double, e BigInteger tipos.
Quando um BigInteger valor é formatado usando este especificador, sua representação de seqüência de caracteres contém todos os dígitos significativos na BigInteger valor. Quando um Single ou Double valor é formatado usando este especificador, ela é testada pela primeira vez usando o formato geral, com 15 dígitos de precisão para um Double e 7 dígitos de precisão para um Single. Se o valor é analisado com êxito de volta ao mesmo valor numérico, ele é formatado usando o especificador de formato geral. Se o valor não é analisado com êxito para o mesmo valor numérico, ele é formatado usando 17 dígitos de precisão para um Double e 9 dígitos de precisão para um Single.
Embora você possa incluir um especificador de precisão, ela será ignorada. O processamento recebe precedência sobre a precisão ao usar esse especificador.
A seqüência de caracteres de resultado é afetada por informações de formatação do atual NumberFormatInfo objeto. A tabela a seguir listas os NumberFormatInfo Propriedades que controlam a formatação da seqüência de resultado.
Propriedade NumberFormatInfo |
Descrição |
---|---|
Define a seqüência de caracteres que indica que é um número negativo. |
|
Define a seqüência de caracteres que separa os dígitos integrais de dígitos decimais. |
|
Define a seqüência de caracteres que indica que um expoente é positivo. |
O exemplo a seguir formata valores Double com o especificador de formato de processamento.
Dim value As Double
value = Math.Pi
Console.WriteLine(value.ToString("r"))
' Displays 3.1415926535897931
Console.WriteLine(value.ToString("r", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 3,1415926535897931
value = 1.623e-21
Console.WriteLine(value.ToString("r"))
' Displays 1.623E-21
double value;
value = Math.PI;
Console.WriteLine(value.ToString("r"));
// Displays 3.1415926535897931
Console.WriteLine(value.ToString("r",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 3,1415926535897931
value = 1.623e-21;
Console.WriteLine(value.ToString("r"));
// Displays 1.623E-21
Volta à tabela
O Hexadecimal ("X") especificador de formato
O hexadecimal ("X") especificador de formato converte um número como uma seqüência de dígitos hexadecimais. No caso do especificador de formato indica se deve usar caracteres maiúsculos ou minúsculos para dígitos hexadecimais que são maiores do que 9. Por exemplo, usar o "X" para produzir "abcdef" e "x" para produzir "abcdef". Esse formato é suportado apenas para tipos inteiros.
O especificador de precisão indica o número mínimo de dígitos desejados na sequência resultante. Se necessário, o número é preenchido com zeros à esquerda para produzir o número de dígitos fornecido pelo especificador de precisão.
A seqüência de caracteres de resultado não é afetada por informações de formatação do atual NumberFormatInfo objeto.
O exemplo a seguir formata valores Int32 com o especificador de formato hexadecimal.
Dim value As Integer
value = &h2045e
Console.WriteLine(value.ToString("x"))
' Displays 2045e
Console.WriteLine(value.ToString("X"))
' Displays 2045E
Console.WriteLine(value.ToString("X8"))
' Displays 0002045E
value = 123456789
Console.WriteLine(value.ToString("X"))
' Displays 75BCD15
Console.WriteLine(value.ToString("X2"))
' Displays 75BCD15
int value;
value = 0x2045e;
Console.WriteLine(value.ToString("x"));
// Displays 2045e
Console.WriteLine(value.ToString("X"));
// Displays 2045E
Console.WriteLine(value.ToString("X8"));
// Displays 0002045E
value = 123456789;
Console.WriteLine(value.ToString("X"));
// Displays 75BCD15
Console.WriteLine(value.ToString("X2"));
// Displays 75BCD15
Volta à tabela
Anotações
Configurações do Painel de controle
As configurações no item Opções regionais e de idioma no Painel de Controle influenciam a sequência de resultado produzida por uma operação de formatação. Essas configurações são usadas para inicializar o NumberFormatInfo objeto associado com a cultura do thread atual, que fornece os valores usados para controlar a formatação. Computadores que usam diferentes configurações geram cadeias de caracteres de resultado diferente.
Além disso, se o construtor CultureInfo.CultureInfo(String) for usado para criar uma instância de um novo objeto CultureInfo que representa a mesma cultura que a cultura atual do sistema, quaisquer personalizações estabelecidas pelo item Opções Regionais e de Idioma no Painel de controle serão aplicadas ao novo objeto CultureInfo. Você pode usar o CultureInfo.CultureInfo(String, Boolean) construtor para criar um CultureInfo objeto que não reflete as personalizações de. um sistema
Propriedades de NumberFormatInfo
Formatação é influenciada pelas propriedades do atual NumberFormatInfo o objeto, que é fornecido implicitamente pela cultura do thread atual ou explicitamente pela IFormatProvider parâmetro do método que invoca a formatação. Especifique um objeto NumberFormatInfo ou CultureInfo para esse parâmetro.
Tipos numéricos inteiros e pontos flutuantes
Algumas descrições dos especificadores de formato numérico padrão se referem a tipos inteiros ou de ponto flutuante. The integral numeric types are Byte, SByte, Int16, Int32, Int64, UInt16, UInt32, UInt64, and BigInteger. Os tipos numéricos de ponto flutuante são Decimal, Single e Double.
Pontos Flutuantes Infinitos e NaN (Não Números)
Independentemente da seqüência de caracteres de formato, se o valor de um Single ou Double tipo de ponto flutuante é infinito positivo, infinito negativo ou não um número (NaN), a seqüência de caracteres formatada é o valor do respectivo PositiveInfinitySymbol, NegativeInfinitySymbol, ou NaNSymbol propriedade que é especificada pelo aplicável no momento NumberFormatInfo objeto.
Exemplo
O exemplo a seguir formata uma integral e um valor numérico de ponto flutuante usando a cultura en-US e os especificadores de formato numérico padrão. Este exemplo usa dois tipos de numéricos específicos (Double e Int32), mas que produziriam resultados semelhantes para qualquer um dos outros tipos base numéricos (Byte, SByte, Int16, Int32, Int64, UInt16, UInt32, UInt64, BigInteger, Decimal, e Single).
Option Strict On
Imports System.Globalization
Imports System.Threading
Module NumericFormats
Public Sub Main()
' Display string representations of numbers for en-us culture
Dim ci As New CultureInfo("en-us")
' Output floating point values
Dim floating As Double = 10761.937554
Console.WriteLine("C: {0}", _
floating.ToString("C", ci)) ' Displays "C: $10,761.94"
Console.WriteLine("E: {0}", _
floating.ToString("E03", ci)) ' Displays "E: 1.076E+004"
Console.WriteLine("F: {0}", _
floating.ToString("F04", ci)) ' Displays "F: 10761.9376"
Console.WriteLine("G: {0}", _
floating.ToString("G", ci)) ' Displays "G: 10761.937554"
Console.WriteLine("N: {0}", _
floating.ToString("N03", ci)) ' Displays "N: 10,761.938"
Console.WriteLine("P: {0}", _
(floating/10000).ToString("P02", ci)) ' Displays "P: 107.62 %"
Console.WriteLine("R: {0}", _
floating.ToString("R", ci)) ' Displays "R: 10761.937554"
Console.WriteLine()
' Output integral values
Dim integral As Integer = 8395
Console.WriteLine("C: {0}", _
integral.ToString("C", ci)) ' Displays "C: $8,395.00"
Console.WriteLine("D: {0}", _
integral.ToString("D6")) ' Displays "D: 008395"
Console.WriteLine("E: {0}", _
integral.ToString("E03", ci)) ' Displays "E: 8.395E+003"
Console.WriteLine("F: {0}", _
integral.ToString("F01", ci)) ' Displays "F: 8395.0"
Console.WriteLine("G: {0}", _
integral.ToString("G", ci)) ' Displays "G: 8395"
Console.WriteLine("N: {0}", _
integral.ToString("N01", ci)) ' Displays "N: 8,395.0"
Console.WriteLine("P: {0}", _
(integral/10000).ToString("P02", ci)) ' Displays "P: 83.95 %"
Console.WriteLine("X: 0x{0}", _
integral.ToString("X", ci)) ' Displays "X: 0x20CB"
Console.WriteLine()
End Sub
End Module
using System;
using System.Globalization;
using System.Threading;
public class NumericFormats
{
public static void Main()
{
// Display string representations of numbers for en-us culture
CultureInfo ci = new CultureInfo("en-us");
// Output floating point values
double floating = 10761.937554;
Console.WriteLine("C: {0}",
floating.ToString("C", ci)); // Displays "C: $10,761.94"
Console.WriteLine("E: {0}",
floating.ToString("E03", ci)); // Displays "E: 1.076E+004"
Console.WriteLine("F: {0}",
floating.ToString("F04", ci)); // Displays "F: 10761.9376"
Console.WriteLine("G: {0}",
floating.ToString("G", ci)); // Displays "G: 10761.937554"
Console.WriteLine("N: {0}",
floating.ToString("N03", ci)); // Displays "N: 10,761.938"
Console.WriteLine("P: {0}",
(floating/10000).ToString("P02", ci)); // Displays "P: 107.62 %"
Console.WriteLine("R: {0}",
floating.ToString("R", ci)); // Displays "R: 10761.937554"
Console.WriteLine();
// Output integral values
int integral = 8395;
Console.WriteLine("C: {0}",
integral.ToString("C", ci)); // Displays "C: $8,395.00"
Console.WriteLine("D: {0}",
integral.ToString("D6", ci)); // Displays "D: 008395"
Console.WriteLine("E: {0}",
integral.ToString("E03", ci)); // Displays "E: 8.395E+003"
Console.WriteLine("F: {0}",
integral.ToString("F01", ci)); // Displays "F: 8395.0"
Console.WriteLine("G: {0}",
integral.ToString("G", ci)); // Displays "G: 8395"
Console.WriteLine("N: {0}",
integral.ToString("N01", ci)); // Displays "N: 8,395.0"
Console.WriteLine("P: {0}",
(integral/10000.0).ToString("P02", ci)); // Displays "P: 83.95 %"
Console.WriteLine("X: 0x{0}",
integral.ToString("X", ci)); // Displays "X: 0x20CB"
Console.WriteLine();
}
}
Consulte também
Tarefas
Como: Acrescentar um número com zeros
Referência
Conceitos
Sequências de Caracteres de Formato Numérico Personalizado
Histórico de alterações
Date |
History |
Motivo |
---|---|---|
Março de 2011 |
Adicionado um link para o utilitário de formato. |
Aprimoramento de informações. |
Julho de 2010 |
Observe que o arredondamento afastando de zero é usado com o "C" seqüência de caracteres de formato padrão. |
Comentários do cliente. |