formatação decimal sem arredondar .net

Ontem eu pergunteiesta questão geral sobre decimais e suas precisões internas. Aqui está uma pergunta específica sobre o cenário que estou tentando abordar.

Eu tenho coluna no SqlServer que é digitado - decimal (18,6). Quando obtenho esses valores, os decimais .net que são criados correspondem à precisão no banco de dados. Eles se parecem com isso:

1.100000
0.960000
0.939000
0.844400
0.912340

Eu preciso apresentar (ToString) esses valores de acordo com estas regras:

Não-zeros são sempre mostrados.Zeros à direita na ou antes da nona casa decimal são mostrados.Zeros à direita depois da n-ésima casa não são mostrados.

Então, isso é o que eu quero quando n é 3:

1.100
0.960
0.939
0.8444
0.91234

Agora, eu escrevi algum código que ToString é o decimal - removendo todos os zeros à direita, e depois analisa a string procurando por um ponto decimal e conta o número de casas decimais para ver quantos zeros à direita precisam ser adicionados novamente.Existe uma maneira melhor de conseguir isso?

Além disso, eu sei que disse ToString na pergunta acima ... mas se eu pudesse modificar os decimais na saída da minha camada de acesso a dados, de modo que os consumidores sempre obtenham decimais com a precisão adequada, isso seria melhor. É possível executar esta operação no próprio decimal sem manipulação de string?