VB .NET - Formatando números com ToString


Você sabia que os tipos de dados básicos não fazem mais parte da linguagem Visual Basic (ou C #) ?

Eles agora são parte da CLR - Common Language Runtime, que é um componente básico do Visual Studio (na verdade, é o núcleo do Visual Studio e é compartilhado por todas as linguagens que podem ser usadas no Visual Studio).

Todos os tipos de dados expõe um método ToString, que retorna o valor da variável (um número ou data) como uma string (cadeia de caracteres) de modo que ele pode ser usado com outras strings no seu código. O método ToString formata números e datas de muitas maneiras, e, é provavelmente um dos métodos mais usados no dia a dia.

Você pode chamar o método ToString sem quaisquer argumentos, para converter qualquer valor para uma string. O método ToString, no entanto, aceita uma argumento opcional, que determina como o valor será formatado como uma string.

Por exemplo, você pode formatar um número como moeda, prefixando-o com o símbolo apropriado (como o símbolo do dólar(U$)), exibi-lo com dois dígitos decimais e você pode exibir datas em muitos formatos. O método ToString permite que você exiba números e datas, e qualquer outro tipo, em qualquer forma que desejar.

Observe que o ToString é um método, não uma propriedade. Ele retorna um valor que você pode atribuir a uma variável string ou passar como argumento para uma função, como MsgBox(), mas o valor original não é afetado.

O método ToString também pode formatar um valor se for chamado com um argumento opcional: Ex: ToString(formatString)

O argumento formatString é um especificador de formato (uma string que especifica o formato exato a ser aplicado à variável).

Este argumento pode ser um caractere específico que corresponde a um formato predeterminado(uma seqüência de formato padrão) ou uma seqüência de caracteres que têm um significado especial na formatação de valores numéricos.

Você pode usar o formato padrão de strings para as opções de formatação mais comuns ou usar a máscara de formatação string para especificar uma formatação menos comum.

Para formatar o valor de 9959,95 como um valor em reais, você pode usar o especificador de formato C, que significa Currency(Moeda). Ex:

Dim valor As Single = 9959.95
Dim strValor As String
strValor = valor.
ToString("C")

Ou pode usar a máscara string para formatação numérica:

strValor = valor.ToString("R$ #,###.00")

Ambas as declarações irão formatar o valor para R$ 9.959,95. (pois minha localização é Brazil)

Obs: Dependendo da localização do seu Windows (estou usando o Windows 7), o símbolo da moeda exibido irá ser diferente, e você pode alterar isso abrindo o painel de controle e clicando na opção Relógio,Idioma e Região -> Alterar o teclado e outros métodos de entrada e na janela Região e Idioma definir o Local e o formato desejado:

A máscara de formatação string - ToString("R$ #,###.00") - é composta de literais e caracteres que têm significado especial na formatação.

Caracteres de formatação numérica padrão

O método ToString dos tipos de dados numéricos reconhece a string de formatação numérica padrão conforme mostra a tabela abaixo.

Obs: O caractere de formatação pode ser seguido por um número inteiro. Se estiver presente, o valor inteiro especifica o número de casas decimais na qual serão exibidos. A precisão padrão é de dois dígitos decimais.

Caractere de Formatação Descrição Exemplo
C ou c Currency  (12345.67).ToString("C") retorna R$ 12.345,67
D ou d Decimal  (123456789).ToString("D") retorna 123456789
E ou e Scientific Format  (12345.67).ToString("E") retorna 1,234567E+ 004
F ou f Fixed-point format  (12345.67).ToString("F") retorna 12345,67
G ou g General Format  (12345.67).ToString("N") returns 12.345,67
N ou n Number Format  retorna um valor no formato científico ou de ponto-fixo.
P ou p Percentage  (0.12345).ToString("P") returns 12,35%.
R ou r Round-trip  (1/3).ToString("R") retorna 0.3333333343
 (Onde o especificador G iria retornar um valor com menos digitos decimais : 0.3333333).
X ou x Hexadecimal format  250.ToString("X") retorna FA.

Obs: O resultado é basedo na minha localização : Brasil

Máscara de formatação númerica

Se os caracteres de formato listados na tabela acima não forem adequados para o controle necessário sobre a exibição dos valores numéricos, você pode criar as suas próprias máscaras de formatação de strings.

Elas contém caracteres especiais que permitem que você formate seus valores exatamente como você deseja. Abaixo temos uma lista dos caracteres usados nestas máscaras:

Caractere de Formatação

Descrição

Efeito

0 Exibe zero Resulta em um zero não significativo se um
número tiver menos dígitos do que zeros no formato
# Exibe digito Substitui o simbolo com apenas algarismos significativos
. Ponto decimal Exibe o caractere de ponto (.)
, separador de grupo Separa grupos de números. Ex: 1,000
% porcentagem Exibe o caractere de porcentagem (%)
E + 0, E - 0, e + 0, e - 0 notação exponencial Formata a saída na notação exponencial
\ caractere literal Usado com formatação tradicional como \n(nova linha)
"" literal string Exibe qualquer string dentro de aspas simples ou duplas
; separador de seção Especifica uma saída diferente se o valor numérico a
ser formatado é positivo, negativo ou zero

Exemplos:

Dim valor as Decimal

Valor=42492.45
Valor.ToString("R$ #,###.00")
retorna R$ 42.492,45
Valor=0.2678
2- Valor.ToString("0.000")
retorna 0,268
Valor=-24.95
3- Valor.ToString("R$ #,###.00;(R$ #,###.00)")
retorna (R$ 24,95)

Usando esses recursos do método ToString você tem muita flexibilidade para formatar basicamente um tipo de dado numérico ou data para uma string definindo sua formatação.

Rom 3:10 como está escrito: Não há justo, nem sequer um.

Rom 3:11 Não há quem entenda; não há quem busque a Deus.

Rom 3:12 Todos se extraviaram; juntamente se fizeram inúteis. Não há quem faça o bem, não há nem um só.

Efs 2:8 Porque pela graça sois salvos, por meio da fé; e isto não vem de vós, é dom de Deus;

Joã 14:6 Respondeu-lhe Jesus: Eu sou o caminho, e a verdade, e a vida; ninguém vem ao Pai, senão por mim.

        Rom 5:1 Justificados, pois, pela fé, tenhamos paz com Deus, por nosso Senhor Jesus Cristo,

        Rom 5:2 por quem obtivemos também nosso acesso pela fé a esta graça, na qual estamos firmes, e gloriemo-nos na esperança da glória de Deus.

Referências:


José Carlos Macoratti