formatowanie dziesiętne bez zaokrąglania .net
Wczoraj zapytałemto ogólne pytanie o ułamkach dziesiętnych i ich wewnętrznych dokładnościach. Oto konkretne pytanie dotyczące scenariusza, który próbuję rozwiązać.
Mam kolumnę w SqlServer, która jest wpisana - dziesiętna (18,6). Po pobraniu tych wartości tworzone dziesiętnie .net odpowiadają dokładności w bazie danych. Wyglądają tak:
1.100000
0.960000
0.939000
0.844400
0.912340
Muszę przedstawić (ToString) te wartości zgodnie z tymi zasadami:
Niezerowe są zawsze wyświetlane.Wyświetlane są końcowe zera na lub przed n-tym miejscem dziesiętnym.Końcowe zera po n-tym miejscu dziesiętnym nie są wyświetlane.Tak właśnie chcę, gdy n wynosi 3:
1.100
0.960
0.939
0.8444
0.91234
Teraz napisałem jakiś kod, który ToString jest dziesiętny - usuwając wszystkie końcowe zera, a następnie analizuje ciąg szukając przecinka dziesiętnego i zlicza liczbę miejsc po przecinku, aby zobaczyć, ile końcowych zer trzeba dodać z powrotem.Czy jest lepszy sposób, aby to osiągnąć?
Wiem też, że powiedziałem ToString w powyższym pytaniu ... ale gdybym mógł zmodyfikować miejsca dziesiętne w drodze z mojej warstwy dostępu do danych, tak aby konsumenci zawsze otrzymywali dziesiętne z odpowiednią precyzją, byłoby to lepsze. Czy jest możliwe wykonanie tej operacji na samym dziesiętnym bez manipulacji ciągiem?