Вчера я задал этот общий вопрос о десятичных дробях и их внутренней точности. Вот конкретный вопрос о сценарии, на который я пытаюсь ответить.
У меня есть столбец в SqlServer, который напечатан - десятичный (18,6).
Когда я получаю эти значения, созданные десятичные числа .net соответствуют точности в базе данных. Они выглядят так:
1.100000
0.960000
0.939000
0.844400
0.912340
Мне нужно представить (ToString) эти значения в соответствии с этими правилами:
- Нулевые значения всегда отображаются.
- Отображаются завершающие нули на или перед n-м десятичным знаком.
- Конечные нули после n-го десятичного разряда не отображаются.
Итак, это то, что я хочу, когда n равно 3:
1.100
0.960
0.939
0.8444
0.91234
Теперь я написал некоторый код, который ToString является десятичным: удаляет все конечные нули, а затем анализирует строку в поисках десятичной точки и подсчитывает количество десятичных разрядов, чтобы увидеть, сколько конечных нулей необходимо добавить обратно. Есть ли лучший способ сделать это?
Кроме того, я знаю, что сказал ToString в приведенном выше вопросе ... но если бы я мог изменить десятичные дроби на своем выходе из моего уровня доступа к данным, чтобы потребители всегда получали десятичные дроби с надлежащей точностью, это было бы лучше , Можно ли выполнить эту операцию для самого десятичного числа без манипулирования строками?