sexta-feira, 3 de agosto de 2012

Setando a Cultura da Moeda C#.

A intenção principal deste Blog é informar e passar conhecimentos adquiridos com minhas experiências profissionais.
Hoje estarei iniciando uma nova etapa do Blog, informações úteis de códigos que nem sempre conseguimos achar tão facilmente.
Atualmente estou desenvolvendo uma aplicação com C# Windows Forms em paralelo com uma aplicação Web, com um compartilhamento de base de dados nas nuvens.
Uma situação bem dificil de se trabalhar dados é a questão da moeda, pois nem todos os bancos possuem a CURRENCY ou então MONEY, que são específicos para moedas. Esta opção não está disponível nos bancos Open Source. Então o que fazer:
1)Tratar todo e qualquer dado de moeda individualmente?
2)Criar uma classe especifica para tratar esses problemas?
3)Alterar as configurações regionais da máquina que irá trabalhar?

Todas estas são opções úteis e funcionam, porém são muito trabalhosas e tendem a dar errado em alguns momentos.

Para tal solução específica, poderemos setar a linguagem da cultura da aplicação no inicio de sua execução, na classe Program.cs, que é a Void Main específica do C#.
Fazendo com que toda e qualquer formato que se utilize das funções que tratam diferenças entre formatações de moeda ou datas funcione em tempo integral.

// Para a moedas decimais (0.00)
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
// Para a moeda brasileira (0,00)
Thread.CurrentThread.CurrentCulture = new CultureInfo("pt-BR");

Esse codigo fará toda a diferença quando trabalhamos com bancos que não tratam estas informações específicas.

Bem, ficamos por aqui hoje, mas em breve estarei trazendo mais dicas sobre programação.