昨日、小数とその内部精度に関する一般的な質問をしました。これは、私が対処しようとしているシナリオに関する特定の質問です。
入力されたSqlServerに列があります-decimal(18,6)。これらの値を取得すると、作成される .net 10 進数がデータベースの精度と一致します。それらは次のようになります。
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 と言ったことは知っていますが、データ アクセス レイヤーから出る途中で小数を変更できれば、消費者は常に適切な精度で小数を取得できます。文字列を操作せずに、10 進数自体でこの操作を実行することは可能ですか?