십진수에서 후행 0을 효율적으로 제거: 정밀도 보존 접근 방식
많은 데이터 세트에는 뒤에 0이 붙는 십진수가 포함되어 있어 데이터 표시에 영향을 미칩니다. 이 문서에서는 수치 정확도를 손상시키지 않고 이러한 0을 제거하는 방법을 보여줍니다.
단순히 String.Format("N0")
을 사용하는 것만으로는 충분하지 않습니다. 숫자를 반올림하여 데이터 무결성을 변경할 수 있기 때문입니다.
더 나은 방법은 Decimal.GetBits()
을 활용하여 십진수의 기본 비트 구조에 액세스하는 것입니다. 소수를 상수 1.000000000000000000000000000000000m
로 나누면 지수가 수정되어 불필요한 후행 0이 효과적으로 제거됩니다.
이 기술은 확장 메서드를 사용하여 쉽게 구현됩니다.
<code class="language-csharp">public static decimal Normalize(this decimal value) { return value / 1.000000000000000000000000000000000m; }</code>
.ToString()
을 정규화된 십진수에 적용하면 원래 수치 정밀도를 유지하면서 뒤에 오는 0이 없는 문자열 표현이 생성됩니다. 예를 들면 다음과 같습니다.
<code class="language-csharp">1.200m.Normalize().ToString(); // Returns "1.2"</code>
위 내용은 정밀도를 잃지 않고 10 진수에서 후행 0을 제거하려면 어떻게해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!