과학적 표기법을 사용하지 않고 .NET에서 정확한 배정밀도 부동 소수점을 문자열로 변환
.NET에서 배정밀도 부동 소수점 숫자를 부동 소수점 문자열 표현으로 변환하는 것은 특히 큰 숫자와 작은 숫자 모두에 대한 과학적 표기법을 효과적으로 억제하는 솔루션을 찾을 때 어려울 수 있습니다.
한 가지 방법은 소수점 이하의 원하는 정밀도를 지정하는 사용자 정의 형식 문자열을 사용하는 것입니다. 가능한 모든 배정밀도 부동 소수점 값을 정확하게 표현하려면 많은 수의 숫자가 필요합니다. 이 요구 사항에 대한 일반적인 해결책은 다음과 같습니다.
<code class="language-csharp">doubleValue.ToString("0." + new string('#', 339))</code>
이 형식 문자열에는 지수(324비트)만큼 오른쪽으로 이동할 수 있는 0이 아닌 소수 자릿수(15)의 최대 수를 나타내는 339파운드 문자('#')가 포함되어 있습니다.
ToString()의 잠재적인 명시적 반올림으로 인해 이 방법은 무손실 변환보다는 정밀도를 제공한다는 점에 유의하는 것이 중요합니다. 무손실 왕복 변환을 위해서는 @Loathing에서 제공하는 대체 솔루션을 고려해 보세요.
사용성과 성능을 향상시키기 위해 형식 문자열을 상수로 저장할 수 있습니다.
<code class="language-csharp">public static class FormatStrings { public const string DoubleFixedPoint = "0.###################################################################################################################################################################################################################################################################################################################################################"; }</code>
이 기술을 사용하면 배정밀도 부동 소수점 숫자를 과학적 표기법 없이 쉽게 문자열 표현으로 변환할 수 있으므로 애플리케이션에서 크고 작은 숫자를 정확하게 표시할 수 있습니다.
위 내용은 과학적 표기법 없이 .NET에서 Double을 문자열로 정확하게 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!