Remoção de zeros não significativos em valores decimais em .NET

Quando utilizamos valores do tipo decimal que vêm do SQL Server, o nº de casas decimais definido no SQL Server acompanha o valor nas variáveis de tipo de dados Decimal, o que muitas vezes não é conveniente. Se é um facto que a formatação de valores numéricos para string permite dar conta desta situação, utilizando por exemplo a máscara de formatação 0.#####, hoje necessitei de remover os zeros não significativos à direita do ponto decimal de uma variável do tipo decimal. Como não encontrei feito aquilo que pretendia, criei o seguinte extension method:

public static decimal RemoveTraillingZeros(this decimal number)
{
    return decimal.Parse(number.ToString("0.#######", new System.Globalization.CultureInfo("en-US")), new System.Globalization.CultureInfo("en-US"));
}



A opção pela cultura en-US não influencia o resultado, o importante é que a conversão em string e de novo em decimal seja feita sobre a mesma cultura para evitar problemas… culturais!



Para quem necessitar de fazer a mesma operação mas a nível do SQL Server, há UDFs na internet que o permitem fazer.

Pergunta: Dúvidas sobre Windows Phone 7 e compatibilidade de aplicações antigas

Recebi a seguinte mensagem de um visitante deste blog, que espelha muitas das preocupações de empresas que desenvolvem para Windows Mobile, que tomo a liberdade de transcrever:

Com o lançamento do Windows Phone 7, tanto quanto tenho lido em blogs, o SQL SERVER COMPACT EDITION vai desaparecer certo? O meu problema é o seguinte, a empresa para a qual trabalho desenvolve software que usa bd em sql server ce, e é desenvolvido em VS 2005. A minha duvida é se voce sabe se o projecto será compativel no Windows Phone 7 ou se há alguma maneira de migrar, ou tendo em conta que o WP7 assenta em silverlight, a unica hipotese é desenvolver a solução de raiz??

A minha outra duvida é será que a Microsoft apesar de lançar o WP7, irá manter a venda de Windows Mobile 6.5 ? de modo a continuar a dar suporte e assistência às milhares de aplicações que existirão em todo o mundo?

Não sei se me pode ajudar, mas como sou leitor assíduo do seu blog, junto lhe envio as minhas preocupações, que de momento me causam grandes dores de cabeça :) Na expectativa que me possa transmitir alguma informação adicional

Começando pelo fim, o Windows Mobile 6.5 não morre! A Microsoft anunciou há meses – publiquei um post dobre o assunto na altura – o Windows Embedded Handheld como a nova incarnação do que actualmente conhecemos como Windows Mobile. Esse ‘novo’ sistema operativo, que a Motorola já começou a adoptar e que outros fabricantes adoptarão, tem já um roadmap conhecido, que prevê uma evolução futura baseada em CE 7.0, mantendo sempre compatibilidade com a .NET Compact Framework 3.5, o SQL Server CE 3.5, continuando para já a exigir o VS2008 para desenvolvimento. É um facto que os fabricantes mais ‘comerciais’ como a HTC não venham a adoptar este sistema operativo, mas por ex., com os preços dos novos Motorola ES400 a descer dos 600€, não há razão para as empresas não adoptarem equipamentos com fiabilidade e robustez acrescida face aos equipamentos de consumo.

Continuando no tema do desenvolvimento, as aplicações actualmente feitas para .NET CF 3.5 não correm de todo nos equipamentos Windows Phone 7. A boa notícia é que projectos bem estruturados em termos de separação de lógica de negócio, acesso a dados e apresentação facilitam a migração e/ou partilha de código entre projectos para as duas plataformas (nota: julgo que as class library a partilhar terão de ser desenvolvidas no VS2008 para .NET CF 3.5).

Para terminar, o SQL Server Compact Edition não desaparece! Para além de ter sido anunciado o seu suporte alargado do lado do PC, incluíndo suporte para projectos ASP.net, que não é o que interessa para a questão, o SQL Server Compact Edition estará presente nos Windows Phone 7, simplesmente não está acessível aos programadores nesta primeira versão do Windows Phone 7 e respectivas ferramentas de desenvolvimento. Desconhece-se qual a forma como será exposto, admitindo que venha a sê-lo.

Espero ter respondido ao autor da mensagem, qualquer questão pf. usem os comentários.