출력 지정자
실제 값을 출력하려면
Console.Write
또는
Console.WriteLine
:
메소드를 호출하기만 하면 됩니다.
더블 a = 0.9999;
Console.Write(a);
그러나 값의 출력을 미리 포맷해야 하는 경우가 있습니다. String.Format
메서드를 사용하여 이 작업을 수행하는 것이 편리합니다. 자세한 내용은 여기.
특정 정밀도로 출력
분수 형식을 지정하려면 f
지정자가 사용되며 그 뒤에 오는 숫자는 구분 기호 뒤에 몇 개의 문자가 있는지 나타냅니다.
더블 a = 12.123;
Console.WriteLine(String.Format("{0:f2}", a));
결과는 12,12이지만 0.9999 값을 사용하면 제어되지 않는 반올림이 발생하고 1.00.
따라서 다음 알고리즘은 반올림이 아닌 기호를 폐기하는 데 사용됩니다.
1) 원래 값에 10을 곱합니다. 소수점 이하 자릿수를 남겨야 하는 횟수만큼입니다.
2) Math.Truncate
메서드를 사용하여 정수 부분만 남깁니다.
3) 결과 값을 10으로, 소수 자릿수를 남겨야 하는 만큼 많이 나눕니다.
소수점 정밀도가 두 개인 출력의 예:
<사업부>
더블 a = 0.9999;
a = a * Math.Pow(10, 2);
a = Math.Truncate(a);
a = a / Math.Pow(10, 2);
결과를 출력할 때 구분자의 종류(점 또는 쉼표)는 컴퓨터의 지역 설정에 따라 달라지므로 항상 마침표를 구분자로 사용하려면 지역 설정을
불변, 결과 예:
<사업부>
CultureInfo ci = new CultureInfo("");
더블 a = 0.9999;
a = a * Math.Pow(10, 2);
a = Math.Truncate(a);
a = a / Math.Pow(10, 2);
Console.WriteLine(a.ToString(ci));