A formatação de moedas é necessária quando estamos trabalhando com valores monetários. Uma forma bem simples de formatar moedas no C# é usando a conversão toString() e passando para ela o parâmetro “C”, ficando toString(“C”). O parâmentro “C” faz referência a Currency e utiliza as configurações regionais do Windows para detectar a moeda corrente configurada pelo usuário.
Exemplo de como formatar uma variável double para moeda.
Supondo que exista uma variável Double e você precise exibir o valor em uma label, o código ficaria;
double preco = 56.2; label1.Text = preco.toString("C");
Exemplo de como formatar uma variável double com duas casas decimais e vírgula.
Podemos também nos deperar com situações aonde precisamos apenas formatar com duas casas decimais ao invês de moeda. Neste caso usamos o parâmestro “N2”, ficando toString(“N2”). Novamente esta parâmetro usa as configurações regionais do Windows para definir se o número será exibido com vírgula, ou com pontos.
Supondo que exista uma variável Double e você precise exibir o valor em uma label, o código ficaria;
double media = 33.2; label2.Text = media.toString("N2");
Formatando com 3 casas decimais ou mais
Caso precise exibir 3 casas decimais, utilize o parâmetro “N3” e assim por diante.
Resultados
Download de exemplo
Os exemplos acima podem ser testados no projeto que disponibilizei para download. Bons estudos.
WF_FormatarMoeda – CLIQUE PARA FAZER O DOWNLOAD
Bônus – Código para permitir apenas números e vírgula no TextBox
Abaixo um código bem simples sobre como permitir apenas números e vírgula dentro de um TextBox.
IMPORTANTE! O código deve ser colocado dentro do evento KeyPress do TextBox.
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != ',')) { e.Handled = true; MessageBox.Show("este campo aceita somente numero e virgula"); } if ((e.KeyChar == ',') && ((sender as TextBox).Text.IndexOf('.') > -1)) { e.Handled = true; MessageBox.Show("este campo aceita somente uma virgula"); }