десятичное форматирование без округления .net

Вчера спросилэтот общий вопрос о десятичных дробях и их внутренней точности. Вот конкретный вопрос о сценарии, на который я пытаюсь ответить.

У меня есть столбец в SqlServer, который напечатан - десятичный (18,6). Когда я получаю эти значения, созданные десятичные числа .net соответствуют точности в базе данных. Они выглядят так:

1.100000
0.960000
0.939000
0.844400
0.912340

Мне нужно представить (ToString) эти значения в соответствии с этими правилами:

Non-zeroes are always shown. Trailing zeroes on or before the nth decimal place are shown. Trailing zeroes after the nth decimal place are not shown.

Итак, это то, что я хочу, когда n равно 3:

1.100
0.960
0.939
0.8444
0.91234

Теперь я написал некоторый код, который ToString является десятичным: удаляет все конечные нули, а затем анализирует строку в поисках десятичной точки и подсчитывает количество десятичных разрядов, чтобы увидеть, сколько конечных нулей необходимо добавить обратно.Is there a better way to accomplish this?

Кроме того, я знаю, что сказал ToString в вопросе выше ... но если бы я мог изменить десятичные дроби на своем выходе из моего уровня доступа к данным, чтобы потребители всегда получали десятичные дроби с правильной точностью, это было бы лучше. Можно ли выполнить эту операцию над самой десятичной дробью без манипуляции со строками?

Ответы на вопрос(3)

Ваш ответ на вопрос