C#에서 출력에 대해 double 형식을 지정할 때 출력이 디버거에 표시되는 값과 다르다는 점에 유의하는 것이 중요합니다. 그 이유는 다음과 같습니다.
출력 정밀도가 형식 지정자에 의해 결정되는 C와 달리 C#에서는 서식을 적용하기 전에 모든 double을 유효 십진수 15자리로 반올림합니다. 이러한 불일치는 C#이 요청된 정밀도보다 정확성을 우선시하기 때문에 발생합니다.
Visual Studio 디버거는 double의 내부 이진 표현을 직접 표시하므로 형식화된 출력과 불일치합니다.
동안 C#에는 정확한 소수점 형식 지정을 위한 기본 제공 솔루션이 없으므로 내부 이진 데이터에서 문자열 표현을 수동으로 구성할 수 있습니다. 또는 정확한 소수점 출력을 위한 ToExactString 메서드를 제공하는 Jon Skeet의 DoubleConverter와 같은 타사 라이브러리를 사용할 수 있습니다.
DoubleConverter를 사용하여 double을 소수점 이하 20자리로 형식 지정:
double i = 10 * 0.69; Console.WriteLine(DoubleConverter.ToExactString(i));
위 내용은 C# 이중 형식 지정과 디버거 값이 다른 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!