표준 숫자 형식 문자열Standard Numeric Format Strings

표준 숫자 서식 문자열은 일반 숫자 형식의 서식을 지정하는 데 사용됩니다.Standard numeric format strings are used to format common numeric types. 표준 숫자 서식 문자열은 Axx 형식을 취합니다. 여기서A standard numeric format string takes the form Axx, where:

  • A서식 지정자라는 단일 영문자입니다.A is a single alphabetic character called the format specifier. 공백을 포함하여 영문자가 두 개 이상 포함된 숫자 서식 문자열은 사용자 지정 숫자 서식 문자열로 해석됩니다.Any numeric format string that contains more than one alphabetic character, including white space, is interpreted as a custom numeric format string. 자세한 내용은 사용자 지정 숫자 서식 문자열을 참조하세요.For more information, see Custom Numeric Format Strings.

  • xx전체 자릿수 지정자라는 선택적 정수입니다.xx is an optional integer called the precision specifier. 전체 자릿수 지정자는 0에서 99 사이의 정수이며 결과의 자릿수에 영향을 줍니다.The precision specifier ranges from 0 to 99 and affects the number of digits in the result. 전체 자릿수 지정자는 숫자의 문자열 표현에서 자릿수를 제어합니다.Note that the precision specifier controls the number of digits in the string representation of a number. 숫자 자체는 반올림하지 않습니다.It does not round the number itself. 반올림 연산을 수행하려면 Math.Ceiling, Math.Floor 또는 Math.Round 메서드를 사용합니다.To perform a rounding operation, use the Math.Ceiling, Math.Floor, or Math.Round method.

    전체 자릿수 지정자가 결과 문자열의 소수 자릿수를 제어할 때 결과 문자열은 무한 정밀도 결과에 가장 가까운 대표 결과로 반 올림된 숫자를 반영합니다.When precision specifier controls the number of fractional digits in the result string, the result string reflects a number that is rounded to a representable result nearest to the infinitely precise result. 동등하게 대표할 수 있는 결과가 두 개 있는 경우:If there are two equally near representable results:

    • .NET Framework 및.NET Core에서 .NET Core 2.0까지 런타임은 최소 유효 숫자(즉, MidpointRounding.AwayFromZero 사용)를 사용하여 결과를 선택합니다.On the .NET Framework and .NET Core up to .NET Core 2.0, the runtime selects the result with the greater least significant digit (that is, using MidpointRounding.AwayFromZero).
    • .NET Core 2.1 이상에서 런타임도 최소 유효 숫자(즉, MidpointRounding.ToEven 사용)를 사용하여 결과를 선택합니다.On .NET Core 2.1 and later, the runtime selects the result with an even least significant digit (that is, using MidpointRounding.ToEven).

    참고

    전체 자릿수 지정자는 결과 문자열의 자릿수를 결정합니다.The precision specifier determines the number of digits in the result string. 선행 또는 후행 공백을 포함한 결과 문자열을 채우려면 서식 항목에서 복합 서식 지정 기능을 사용하고 맞춤 구성 요소를 정의합니다.To pad a result string with leading or trailing spaces, use the composite formatting feature and define an alignment component in the format item.

표준 숫자 형식 문자열은 다음에 의해 지원됩니다.Standard numeric format strings are supported by:

서식 문자열을 숫자 또는 날짜 및 시간 값에 적용할 수 있도록 지원하고 결과 문자열을 표시하는 애플리케이션인 서식 유틸리티를 다운로드할 수 있습니다.You can download the Formatting Utility, an application that enables you to apply format strings to either numeric or date and time values and displays the result string.

다음 표에서는 표준 숫자 서식 지정자 및 각 서식 지정자로 생성되는 샘플 출력을 보여 줍니다.The following table describes the standard numeric format specifiers and displays sample output produced by each format specifier. 표준 숫자 서식 문자열을 사용하는 방법에 대한 자세한 내용은 참고 섹션을 참조하고, 이러한 사용 방법을 자세히 보여 주는 예제를 보려면 예제 섹션을 참조하세요.See the Notes section for additional information about using standard numeric format strings, and the Example section for a comprehensive illustration of their use.

형식 지정자Format specifier nameName 설명Description 예제Examples
"C" 또는 "c""C" or "c" 통화Currency 결과: 통화 값.Result: A currency value.

지원 대상: 모든 숫자 형식.Supported by: All numeric types.

전체 자릿수 지정자: 십진수의 수.Precision specifier: Number of decimal digits.

기본 전체 자릿수 지정자: NumberFormatInfo.CurrencyDecimalDigits에 의해 정의됩니다.Default precision specifier: Defined by NumberFormatInfo.CurrencyDecimalDigits.

추가 정보: 통화("C") 서식 지정자.More information: The Currency ("C") Format Specifier.
123.456 ("C", en-US) -> $123.46123.456 ("C", en-US) -> $123.46

123.456 ("C", fr-FR) -> 123,46 €123.456 ("C", fr-FR) -> 123,46 €

123.456 ("C", ja-JP) -> ¥123123.456 ("C", ja-JP) -> ¥123

-123.456 ("C3", en-US) -> ($123.456)-123.456 ("C3", en-US) -> ($123.456)

-123.456 ("C3", fr-FR) -> -123,456 €-123.456 ("C3", fr-FR) -> -123,456 €

-123.456 ("C3", ja-JP) -> -¥123.456-123.456 ("C3", ja-JP) -> -¥123.456
"D" 또는 "d""D" or "d" DecimalDecimal 결과: 정수(선택적 음수 기호 포함).Result: Integer digits with optional negative sign.

지원 대상: 정수 형식만.Supported by: Integral types only.

전체 자릿수 지정자: 최소 자릿수.Precision specifier: Minimum number of digits.

기본 전체 자릿수 지정자: 필요한 최소 자릿수.Default precision specifier: Minimum number of digits required.

추가 정보: 10진수("D") 서식 지정자.More information: The Decimal("D") Format Specifier.
1234 ("D") -> 12341234 ("D") -> 1234

-1234 ("D6") -> -001234-1234 ("D6") -> -001234
"E" 또는 "e""E" or "e" 지수(과학적 표기법)Exponential (scientific) 결과: 지수 표기법.Result: Exponential notation.

지원 대상: 모든 숫자 형식.Supported by: All numeric types.

전체 자릿수 지정자: 십진수의 수.Precision specifier: Number of decimal digits.

기본 전체 자릿수 지정자: 6.Default precision specifier: 6.

추가 정보: 지수("E") 서식 지정자.More information: The Exponential ("E") Format Specifier.
1052.0329112756 ("E", en-US) -> 1.052033E+0031052.0329112756 ("E", en-US) -> 1.052033E+003

1052.0329112756 ("e", fr-FR) -> 1,052033e+0031052.0329112756 ("e", fr-FR) -> 1,052033e+003

-1052.0329112756 ("e2", en-US) -> -1.05e+003-1052.0329112756 ("e2", en-US) -> -1.05e+003

-1052.0329112756 ("E2", fr-FR) -> -1,05E+003-1052.0329112756 ("E2", fr-FR) -> -1,05E+003
"F" 또는 "f""F" or "f" 고정 소수점Fixed-point 결과: 선택적 음수 기호가 있는 정수 부분과 소수 부분.Result: Integral and decimal digits with optional negative sign.

지원 대상: 모든 숫자 형식.Supported by: All numeric types.

전체 자릿수 지정자: 십진수의 수.Precision specifier: Number of decimal digits.

기본 전체 자릿수 지정자: NumberFormatInfo.NumberDecimalDigits에 의해 정의됩니다.Default precision specifier: Defined by NumberFormatInfo.NumberDecimalDigits.

추가 정보: 고정 소수점("F") 서식 지정자.More information: The Fixed-Point ("F") Format Specifier.
1234.567 ("F", en-US) -> 1234.571234.567 ("F", en-US) -> 1234.57

1234.567 ("F", de-DE) -> 1234,571234.567 ("F", de-DE) -> 1234,57

1234 ("F1", en-US) -> 1234.01234 ("F1", en-US) -> 1234.0

1234 ("F1", de-DE) -> 1234,01234 ("F1", de-DE) -> 1234,0

-1234.56 ("F4", en-US) -> -1234.5600-1234.56 ("F4", en-US) -> -1234.5600

-1234.56 ("F4", de-DE) -> -1234,5600-1234.56 ("F4", de-DE) -> -1234,5600
"G" 또는 "g""G" or "g" 일반General 결과: 더 간단한 형태의 고정 소수점 또는 과학적 표기법.Result: The more compact of either fixed-point or scientific notation.

지원 대상: 모든 숫자 형식.Supported by: All numeric types.

전체 자릿수 지정자: 유효 자릿수.Precision specifier: Number of significant digits.

기본 전체 자릿수 지정자: 숫자 형식에 따라 달라집니다.Default precision specifier: Depends on numeric type.

추가 정보: 일반("G") 서식 지정자.More information: The General ("G") Format Specifier.
-123.456 ("G", en-US) -> -123.456-123.456 ("G", en-US) -> -123.456

-123.456 ("G", sv-SE) -> -123,456-123.456 ("G", sv-SE) -> -123,456

123.4546 ("G4", en-US) -> 123.5123.4546 ("G4", en-US) -> 123.5

123.4546 ("G4", sv-SE) -> 123,5123.4546 ("G4", sv-SE) -> 123,5

-1.234567890e-25 ("G", en-US) -> -1.23456789E-25-1.234567890e-25 ("G", en-US) -> -1.23456789E-25

-1.234567890e-25 ("G", sv-SE) -> -1,23456789E-25-1.234567890e-25 ("G", sv-SE) -> -1,23456789E-25
"N" 또는 "n""N" or "n" Number 결과: 선택적 음수 기호가 있는 정수 부분과 소수 부분, 그룹 구분 기호 및 소수 구분 기호.Result: Integral and decimal digits, group separators, and a decimal separator with optional negative sign.

지원 대상: 모든 숫자 형식.Supported by: All numeric types.

전체 자릿수 지정자: 원하는 소수 자릿수.Precision specifier: Desired number of decimal places.

기본 전체 자릿수 지정자: NumberFormatInfo.NumberDecimalDigits에 의해 정의됩니다.Default precision specifier: Defined by NumberFormatInfo.NumberDecimalDigits.

추가 정보: 숫자("N") 서식 지정자.More information: The Numeric ("N") Format Specifier.
1234.567 ("N", en-US) -> 1,234.571234.567 ("N", en-US) -> 1,234.57

1234.567 ("N", ru-RU) -> 1 234,571234.567 ("N", ru-RU) -> 1 234,57

1234 ("N1", en-US) -> 1,234.01234 ("N1", en-US) -> 1,234.0

1234 ("N1", ru-RU) -> 1 234,01234 ("N1", ru-RU) -> 1 234,0

-1234.56 ("N3", en-US) -> -1,234.560-1234.56 ("N3", en-US) -> -1,234.560

-1234.56 ("N3", ru-RU) -> -1 234,560-1234.56 ("N3", ru-RU) -> -1 234,560
"P" 또는 "p""P" or "p" 백분율Percent 결과: 100으로 곱하고 백분율 기호와 함께 표시되는 숫자.Result: Number multiplied by 100 and displayed with a percent symbol.

지원 대상: 모든 숫자 형식.Supported by: All numeric types.

전체 자릿수 지정자: 원하는 소수 자릿수.Precision specifier: Desired number of decimal places.

기본 전체 자릿수 지정자: NumberFormatInfo.PercentDecimalDigits에 의해 정의됩니다.Default precision specifier: Defined by NumberFormatInfo.PercentDecimalDigits.

추가 정보: 백분율("P") 서식 지정자.More information: The Percent ("P") Format Specifier.
1 ("P", en-US) -> 100.00 %1 ("P", en-US) -> 100.00 %

1 ("P", fr-FR) -> 100,00 %1 ("P", fr-FR) -> 100,00 %

-0.39678 ("P1", en-US) -> -39.7 %-0.39678 ("P1", en-US) -> -39.7 %

-0.39678 ("P1", fr-FR) -> -39,7 %-0.39678 ("P1", fr-FR) -> -39,7 %
"R" 또는 "r""R" or "r" 라운드트립Round-trip 결과: 해당 숫자로 라운드트립할 수 있는 문자열.Result: A string that can round-trip to an identical number.

지원되는 형식: Single, DoubleBigIntegerSupported by: Single, Double, and BigInteger.

참고: BigInteger 형식에만 권장됩니다.Note: Recommended for the BigInteger type only. Double 형식에는 “G17”을 사용하고 Single 형식에는 “G9”을 사용합니다.For Double types, use "G17"; for Single types, use "G9".
전체 자릿수 지정자: 무시됩니다.Precision specifier: Ignored.

추가 정보: 라운드트립("R") 서식 지정자.More information: The Round-trip ("R") Format Specifier.
123456789.12345678 ("R") -> 123456789.12345678123456789.12345678 ("R") -> 123456789.12345678

-1234567890.12345678 ("R") -> -1234567890.1234567-1234567890.12345678 ("R") -> -1234567890.1234567
"X" 또는 "x""X" or "x" 16진수Hexadecimal 결과: 16진수 문자열.Result: A hexadecimal string.

지원 대상: 정수 형식만.Supported by: Integral types only.

전체 자릿수 지정자: 결과 문자열의 자릿수.Precision specifier: Number of digits in the result string.

추가 정보: 16진수("X") 서식 지정자.More information: The HexaDecimal ("X") Format Specifier.
255 ("X") -> FF255 ("X") -> FF

-1 ("x") -> ff-1 ("x") -> ff

255 ("x4") -> 00ff255 ("x4") -> 00ff

-1 ("X4") -> 00FF-1 ("X4") -> 00FF
기타 모든 단일 문자Any other single character 알 수 없는 지정자Unknown specifier 결과: 런타임에 FormatException을 throw합니다.Result: Throws a FormatException at run time.

표준 숫자 서식 문자열 사용Using Standard Numeric Format Strings

참고

이 문서의 C# 예제는 Try.NET 인라인 코드 러너 및 놀이터에서 실행됩니다.The C# examples in this article run in the Try.NET inline code runner and playground. 대화형 창에서 예제를 실행하려면 실행 버튼을 선택합니다.Select the Run button to run an example in an interactive window. 코드를 실행하면 실행을 다시 선택하여 코드를 수정하고 수정된 코드를 실행할 수 있습니다.Once you execute the code, you can modify it and run the modified code by selecting Run again. 수정된 코드는 대화형 창에서 실행되거나, 컴파일이 실패하면 대화형 창에 모든 C# 컴파일러 오류 메시지가 표시됩니다.The modified code either runs in the interactive window or, if compilation fails, the interactive window displays all C# compiler error messages.

표준 숫자 서식 문자열을 사용하여 다음 두 가지 방법 중 하나로 숫자 값의 서식을 정의할 수 있습니다.A standard numeric format string can be used to define the formatting of a numeric value in one of two ways:

  • 이 서식 문자열은 ToString 매개 변수가 있는 format 메서드의 오버로드에 전달될 수 있습니다.It can be passed to an overload of the ToString method that has a format parameter. 다음 예제에서는 숫자 값의 서식을 현재 문화권(이 예제의 경우 en-US)의 통화 문자열로 지정합니다.The following example formats a numeric value as a currency string in the current culture (in this case, the en-US culture).

    Decimal value = static_cast<Decimal>(123.456);
    Console::WriteLine(value.ToString("C2"));
    // Displays $123.46
    
    decimal value = 123.456m;
    Console.WriteLine(value.ToString("C2"));
    // Displays $123.46
    
    Dim value As Decimal = 123.456d
    Console.WriteLine(value.ToString("C2"))         
    ' Displays $123.46
    
  • 이 형식 문자열은 String.Format, Console.WriteLineStringBuilder.AppendFormat 같은 메서드와 함께 사용되는 서식 항목의 formatString 인수로 제공될 수 있습니다.It can be supplied as the formatString argument in a format item used with such methods as String.Format, Console.WriteLine, and StringBuilder.AppendFormat. 자세한 내용은 복합 서식 지정을 참조하세요.For more information, see Composite Formatting. 다음 예제에서는 서식 항목을 사용하여 문자열에 통화 값을 삽입합니다.The following example uses a format item to insert a currency value in a string.

    Decimal value = static_cast<Decimal>(123.456);
    Console::WriteLine("Your account balance is {0:C2}.", value);
    // Displays "Your account balance is $123.46."
    
    decimal value = 123.456m;
    Console.WriteLine("Your account balance is {0:C2}.", value);
    // Displays "Your account balance is $123.46."
    
    Dim value As Decimal = 123.456d
    Console.WriteLine("Your account balance is {0:C2}.", value)
    ' Displays "Your account balance is $123.46."
    

    필요에 따라 alignment 인수를 제공하여 숫자 필드의 너비 및 해당 값이 오른쪽 맞춤인지 또는 왼쪽 맞춤인지 지정할 수 있습니다.Optionally, you can supply an alignment argument to specify the width of the numeric field and whether its value is right- or left-aligned. 다음 예제에서는 28자 필드의 통화 값을 왼쪽 맞춤으로, 14자 필드의 통화 값을 오른쪽 맞춤으로 지정합니다.The following example left-aligns a currency value in a 28-character field, and it right-aligns a currency value in a 14-character field.

    array<Decimal>^ amounts = { static_cast<Decimal>(16305.32), 
                                static_cast<Decimal>(18794.16) };
    Console::WriteLine("   Beginning Balance           Ending Balance");
    Console::WriteLine("   {0,-28:C2}{1,14:C2}", amounts[0], amounts[1]);
    // Displays:
    //        Beginning Balance           Ending Balance
    //        $16,305.32                      $18,794.16      
    
    decimal[] amounts = { 16305.32m, 18794.16m };
    Console.WriteLine("   Beginning Balance           Ending Balance");
    Console.WriteLine("   {0,-28:C2}{1,14:C2}", amounts[0], amounts[1]);
    // Displays:
    //        Beginning Balance           Ending Balance
    //        $16,305.32                      $18,794.16      
    
    Dim amounts() As Decimal = { 16305.32d, 18794.16d }
    Console.WriteLine("   Beginning Balance           Ending Balance")
    Console.WriteLine("   {0,-28:C2}{1,14:C2}", amounts(0), amounts(1))
    ' Displays:
    '        Beginning Balance           Ending Balance
    '        $16,305.32                      $18,794.16      
    
  • 보간된 문자열의 보간된 식 항목에서 formatString 인수로 제공될 수 있습니다.It can be supplied as the formatString argument in an interpolated expression item of an interpolated string. 자세한 내용은 C# 참조의 문자열 보간 토픽 또는 Visual Basic 참조의 문자열 보간 토픽을 참조하세요.For more information, see the String interpolation topic in the C# reference or the Interpolated strings topic in the Visual Basic reference.

다음 단원에서는 각 표준 숫자 서식 문자열에 대해 자세히 설명합니다.The following sections provide detailed information about each of the standard numeric format strings.

통화("C") 서식 지정자The Currency ("C") Format Specifier

통화("C") 서식 지정자는 숫자를 통화 금액을 나타내는 숫자로 변환합니다.The "C" (or currency) format specifier converts a number to a string that represents a currency amount. 전체 자릿수 지정자는 결과 문자열에 필요한 소수 자릿수를 나타냅니다.The precision specifier indicates the desired number of decimal places in the result string. 전체 자릿수 지정자를 생략하면 NumberFormatInfo.CurrencyDecimalDigits 속성에 의해 기본 전체 자릿수가 정의됩니다.If the precision specifier is omitted, the default precision is defined by the NumberFormatInfo.CurrencyDecimalDigits property.

서식을 지정할 값의 소수 자릿수가 지정된 소수 자릿수 또는 기본 소수 자릿수보다 크면 결과 문자열에서 소수 값이 반올림됩니다.If the value to be formatted has more than the specified or default number of decimal places, the fractional value is rounded in the result string. 지정한 소수 자릿수의 오른쪽에 있는 값이 5 이상인 경우 결과 문자열에서 마지막 자릿수가 양수인 경우 올림, 음수인 경우 내림됩니다(Round Away From Zero 방식).If the value to the right of the number of specified decimal places is 5 or greater, the last digit in the result string is rounded away from zero.

결과 문자열은 현재 NumberFormatInfo 개체의 서식 지정 정보에 영향을 받습니다.The result string is affected by the formatting information of the current NumberFormatInfo object. 다음 표에서는 반환된 문자열의 서식을 제어하는 NumberFormatInfo 속성을 보여 줍니다.The following table lists the NumberFormatInfo properties that control the formatting of the returned string.

NumberFormatInfo 속성NumberFormatInfo property 설명Description
CurrencyPositivePattern 양수 값의 통화 기호 위치를 정의합니다.Defines the placement of the currency symbol for positive values.
CurrencyNegativePattern 음수 값의 통화 기호 위치를 정의하고 음수 기호를 괄호로 나타낼지 아니면 NegativeSign 속성으로 나타낼지 여부를 지정합니다.Defines the placement of the currency symbol for negative values, and specifies whether the negative sign is represented by parentheses or the NegativeSign property.
NegativeSign CurrencyNegativePattern이 괄호가 사용되지 않음을 나타내는 경우에 사용되는 음수 기호를 정의합니다.Defines the negative sign used if CurrencyNegativePattern indicates that parentheses are not used.
CurrencySymbol 통화 기호를 정의합니다.Defines the currency symbol.
CurrencyDecimalDigits 통합 값의 기본 소수 자릿수를 정의합니다.Defines the default number of decimal digits in a currency value. 전체 자릿수 지정자를 사용하여 이 값을 재정의할 수 있습니다.This value can be overridden by using the precision specifier.
CurrencyDecimalSeparator 정수 부분과 소수 부분을 구분하는 문자열을 정의합니다.Defines the string that separates integral and decimal digits.
CurrencyGroupSeparator 정수 그룹을 구분하는 문자열을 정의합니다.Defines the string that separates groups of integral numbers.
CurrencyGroupSizes 그룹에 표시할 정수 자릿수를 정의합니다.Defines the number of integer digits that appear in a group.

다음 예제에서는 통화 서식 지정자를 사용하여 Double 값의 서식을 지정합니다.The following example formats a Double value with the currency format specifier.

double value = 12345.6789;
Console::WriteLine(value.ToString("C", CultureInfo::CurrentCulture));

Console::WriteLine(value.ToString("C3", CultureInfo::CurrentCulture));

Console::WriteLine(value.ToString("C3", 
                  CultureInfo::CreateSpecificCulture("da-DK")));
// The example displays the following output on a system whose
// current culture is English (United States):
//       $12,345.68
//       $12,345.679
//       kr 12.345,679
double value = 12345.6789;
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture));

Console.WriteLine(value.ToString("C3", CultureInfo.CurrentCulture));

Console.WriteLine(value.ToString("C3", 
                  CultureInfo.CreateSpecificCulture("da-DK")));
// The example displays the following output on a system whose
// current culture is English (United States):
//       $12,345.68
//       $12,345.679
//       12.345,679 kr
Dim value As Double = 12345.6789
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture))

Console.WriteLine(value.ToString("C3", CultureInfo.CurrentCulture))

Console.WriteLine(value.ToString("C3", _
                  CultureInfo.CreateSpecificCulture("da-DK")))
' The example displays the following output on a system whose
' current culture is English (United States):
'       $12,345.68
'       $12,345.679
'       kr 12.345,679

표로 이동Back to table

10진수("D") 서식 지정자The Decimal ("D") Format Specifier

10진수("D") 서식 지정자는 숫자를 10진수(0-9) 문자열로 변환하며, 숫자가 음수이면 앞에 빼기 기호를 붙입니다.The "D" (or decimal) format specifier converts a number to a string of decimal digits (0-9), prefixed by a minus sign if the number is negative. 이 서식은 정수 계열 형식에만 사용할 수 있습니다.This format is supported only for integral types.

전체 자릿수 지정자는 결과 문자열에서 요구하는 최소 자릿수를 나타냅니다.The precision specifier indicates the minimum number of digits desired in the resulting string. 필요하면 수의 왼쪽을 0으로 채워서 전체 자릿수 지정자에서 지정한 자릿수를 만듭니다.If required, the number is padded with zeros to its left to produce the number of digits given by the precision specifier. 전체 자릿수 지정자가 지정되지 않은 경우 기본값은 앞에 0이 없이 정수를 나타내는 데 필요한 최소값입니다.If no precision specifier is specified, the default is the minimum value required to represent the integer without leading zeros.

결과 문자열은 현재 NumberFormatInfo 개체의 서식 지정 정보에 영향을 받습니다.The result string is affected by the formatting information of the current NumberFormatInfo object. 다음 표와 같이 단일 속성은 결과 문자열의 서식에 영향을 줍니다.As the following table shows, a single property affects the formatting of the result string.

NumberFormatInfo 속성NumberFormatInfo property 설명Description
NegativeSign 숫자가 음수임을 나타내는 문자열을 정의합니다.Defines the string that indicates that a number is negative.

다음 예제에서는 10진수 서식 지정자를 사용하여 Int32 값의 서식을 지정합니다.The following example formats an Int32 value with the decimal format specifier.

int value; 

value = 12345;
Console::WriteLine(value.ToString("D"));
// Displays 12345
Console::WriteLine(value.ToString("D8"));
// Displays 00012345

value = -12345;
Console::WriteLine(value.ToString("D"));
// Displays -12345
Console::WriteLine(value.ToString("D8"));
// Displays -00012345
int value; 

value = 12345;
Console.WriteLine(value.ToString("D"));
// Displays 12345
Console.WriteLine(value.ToString("D8"));
// Displays 00012345

value = -12345;
Console.WriteLine(value.ToString("D"));
// Displays -12345
Console.WriteLine(value.ToString("D8"));
// Displays -00012345
Dim value As Integer 

value = 12345
Console.WriteLine(value.ToString("D"))
' Displays 12345   
Console.WriteLine(value.ToString("D8"))
' Displays 00012345

value = -12345
Console.WriteLine(value.ToString("D"))
' Displays -12345
Console.WriteLine(value.ToString("D8"))
' Displays -00012345

표로 이동Back to table

지수("E") 서식 지정자The Exponential ("E") Format Specifier

지수("E") 서식 지정자는 숫자를 "-d.ddd…E+ddd" 또는 "-d.ddd…e+ddd" 형태의 문자열로 변환합니다. 여기서 각 "d"는 숫자(0-9)를 나타냅니다.The exponential ("E") format specifier converts a number to a string of the form "-d.ddd…E+ddd" or "-d.ddd…e+ddd", where each "d" indicates a digit (0-9). 숫자가 음수이면 문자열 앞에 빼기 기호가 붙습니다.The string starts with a minus sign if the number is negative. 소수점 앞에는 항상 숫자가 하나만 있어야 합니다.Exactly one digit always precedes the decimal point.

전체 자릿수 지정자는 소수점 뒤에 필요한 자릿수를 나타냅니다.The precision specifier indicates the desired number of digits after the decimal point. 전체 자릿수 지정자가 생략되면 소수점 뒤에 기본 6자리가 사용됩니다.If the precision specifier is omitted, a default of six digits after the decimal point is used.

서식 지정자의 대/소문자에 따라 지수에 "E" 또는 "e" 접두사를 붙일 것인지가 결정됩니다.The case of the format specifier indicates whether to prefix the exponent with an "E" or an "e". 지수는 항상 더하기 또는 빼기 기호가 포함된 최소 3자리로 구성됩니다.The exponent always consists of a plus or minus sign and a minimum of three digits. 필요하면 지수를 0으로 채워서 이 조건을 만족시킵니다.The exponent is padded with zeros to meet this minimum, if required.

결과 문자열은 현재 NumberFormatInfo 개체의 서식 지정 정보에 영향을 받습니다.The result string is affected by the formatting information of the current NumberFormatInfo object. 다음 표에서는 반환된 문자열의 서식을 제어하는 NumberFormatInfo 속성을 보여 줍니다.The following table lists the NumberFormatInfo properties that control the formatting of the returned string.

NumberFormatInfo 속성NumberFormatInfo property 설명Description
NegativeSign 계수와 지수가 둘 다 음수임을 나타내는 문자열을 정의합니다.Defines the string that indicates that a number is negative for both the coefficient and exponent.
NumberDecimalSeparator 계수에서 정수 부분과 소수 부분을 구분하는 문자열을 정의합니다.Defines the string that separates the integral digit from decimal digits in the coefficient.
PositiveSign 지수가 양수임을 나타내는 문자열을 정의합니다.Defines the string that indicates that an exponent is positive.

다음 예제에서는 지수 서식 지정자를 사용하여 Double 값의 서식을 지정합니다.The following example formats a Double value with the exponential format specifier.

double value = 12345.6789;
Console::WriteLine(value.ToString("E", CultureInfo::InvariantCulture));
// Displays 1.234568E+004

Console::WriteLine(value.ToString("E10", CultureInfo::InvariantCulture));
// Displays 1.2345678900E+004

Console::WriteLine(value.ToString("e4", CultureInfo::InvariantCulture));
// Displays 1.2346e+004

Console::WriteLine(value.ToString("E", 
                  CultureInfo::CreateSpecificCulture("fr-FR")));
// Displays 1,234568E+004
double value = 12345.6789;
Console.WriteLine(value.ToString("E", CultureInfo.InvariantCulture));
// Displays 1.234568E+004

Console.WriteLine(value.ToString("E10", CultureInfo.InvariantCulture));
// Displays 1.2345678900E+004

Console.WriteLine(value.ToString("e4", CultureInfo.InvariantCulture));
// Displays 1.2346e+004

Console.WriteLine(value.ToString("E", 
                  CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 1,234568E+004
Dim value As Double = 12345.6789
Console.WriteLine(value.ToString("E", CultureInfo.InvariantCulture))
' Displays 1.234568E+004

Console.WriteLine(value.ToString("E10", CultureInfo.InvariantCulture))
' Displays 1.2345678900E+004

Console.WriteLine(value.ToString("e4", CultureInfo.InvariantCulture))
' Displays 1.2346e+004

Console.WriteLine(value.ToString("E", _
                  CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 1,234568E+004

표로 이동Back to table

고정 소수점("F") 서식 지정자The Fixed-Point ("F") Format Specifier

고정 소수점("F") 서식 지정자는 숫자를 "-ddd.ddd…" 형태의 문자열로 변환합니다. 여기서 각 "d"는 숫자(0-9)를 나타냅니다.The fixed-point ("F") format specifier converts a number to a string of the form "-ddd.ddd…" where each "d" indicates a digit (0-9). 숫자가 음수이면 문자열 앞에 빼기 기호가 붙습니다.The string starts with a minus sign if the number is negative.

전체 자릿수 지정자는 필요한 소수 자릿수를 나타냅니다.The precision specifier indicates the desired number of decimal places. 전체 자릿수 지정자를 생략하면 현재 NumberFormatInfo.NumberDecimalDigits 속성에서 숫자 전체 자릿수를 제공합니다.If the precision specifier is omitted, the current NumberFormatInfo.NumberDecimalDigits property supplies the numeric precision.

결과 문자열은 현재 NumberFormatInfo 개체의 서식 지정 정보에 영향을 받습니다.The result string is affected by the formatting information of the current NumberFormatInfo object. 다음 표에서는 결과 문자열의 서식을 제어하는 NumberFormatInfo 개체의 속성을 보여 줍니다.The following table lists the properties of the NumberFormatInfo object that control the formatting of the result string.

NumberFormatInfo 속성NumberFormatInfo property 설명Description
NegativeSign 숫자가 음수임을 나타내는 문자열을 정의합니다.Defines the string that indicates that a number is negative.
NumberDecimalSeparator 정수 부분과 소수 부분을 구분하는 문자열을 정의합니다.Defines the string that separates integral digits from decimal digits.
NumberDecimalDigits 기본 소수 자릿수를 정의합니다.Defines the default number of decimal digits. 전체 자릿수 지정자를 사용하여 이 값을 재정의할 수 있습니다.This value can be overridden by using the precision specifier.

다음 예제에서는 고정 소수점 서식 지정자를 사용하여 DoubleInt32 값의 서식을 지정합니다.The following example formats a Double and an Int32 value with the fixed-point format specifier.

int integerNumber;
integerNumber = 17843;
Console::WriteLine(integerNumber.ToString("F", 
                  CultureInfo::InvariantCulture));
// Displays 17843.00

integerNumber = -29541;
Console::WriteLine(integerNumber.ToString("F3", 
                  CultureInfo::InvariantCulture));
// Displays -29541.000

double doubleNumber;
doubleNumber = 18934.1879;
Console::WriteLine(doubleNumber.ToString("F", CultureInfo::InvariantCulture));
// Displays 18934.19

Console::WriteLine(doubleNumber.ToString("F0", CultureInfo::InvariantCulture));
// Displays 18934

doubleNumber = -1898300.1987;
Console::WriteLine(doubleNumber.ToString("F1", CultureInfo::InvariantCulture));  
// Displays -1898300.2

Console::WriteLine(doubleNumber.ToString("F3", 
                  CultureInfo::CreateSpecificCulture("es-ES")));
// Displays -1898300,199                        
int integerNumber;
integerNumber = 17843;
Console.WriteLine(integerNumber.ToString("F", 
                  CultureInfo.InvariantCulture));
// Displays 17843.00

integerNumber = -29541;
Console.WriteLine(integerNumber.ToString("F3", 
                  CultureInfo.InvariantCulture));
// Displays -29541.000

double doubleNumber;
doubleNumber = 18934.1879;
Console.WriteLine(doubleNumber.ToString("F", CultureInfo.InvariantCulture));
// Displays 18934.19

Console.WriteLine(doubleNumber.ToString("F0", CultureInfo.InvariantCulture));
// Displays 18934

doubleNumber = -1898300.1987;
Console.WriteLine(doubleNumber.ToString("F1", CultureInfo.InvariantCulture));  
// Displays -1898300.2

Console.WriteLine(doubleNumber.ToString("F3", 
                  CultureInfo.CreateSpecificCulture("es-ES")));
// Displays -1898300,199                        
Dim integerNumber As Integer
integerNumber = 17843
Console.WriteLine(integerNumber.ToString("F", CultureInfo.InvariantCulture))
' Displays 17843.00

integerNumber = -29541
Console.WriteLine(integerNumber.ToString("F3", CultureInfo.InvariantCulture))
' Displays -29541.000

Dim doubleNumber As Double
doubleNumber = 18934.1879
Console.WriteLine(doubleNumber.ToString("F", CultureInfo.InvariantCulture))
' Displays 18934.19

Console.WriteLine(doubleNumber.ToString("F0", CultureInfo.InvariantCulture))
' Displays 18934

doubleNumber = -1898300.1987
Console.WriteLine(doubleNumber.ToString("F1", CultureInfo.InvariantCulture))  
' Displays -1898300.2

Console.WriteLine(doubleNumber.ToString("F3", _ 
                  CultureInfo.CreateSpecificCulture("es-ES")))
' Displays -1898300,199                        

표로 이동Back to table

일반("G") 서식 지정자The General ("G") Format Specifier

일반("G") 서식 지정자는 숫자의 형식 및 전체 자릿수 지정자의 유무에 따라 숫자를 고정 소수점 또는 과학적 표기법 중에서 더 간단한 서식으로 변환합니다.The general ("G") format specifier converts a number to the more compact of either fixed-point or scientific notation, depending on the type of the number and whether a precision specifier is present. 전체 자릿수 지정자는 결과 문자열에 표시할 수 있는 최대 유효 자릿수를 정의합니다.The precision specifier defines the maximum number of significant digits that can appear in the result string. 전체 자릿수 지정자가 생략되거나 0이면 다음 표에 나와 있는 대로 숫자의 형식에 따라 기본 자릿수가 결정됩니다.If the precision specifier is omitted or zero, the type of the number determines the default precision, as indicated in the following table.

숫자 형식Numeric type 기본 전체 자릿수Default precision
Byte 또는 SByteByte or SByte 3개의 자릿수3 digits
Int16 또는 UInt16Int16 or UInt16 5개의 자릿수5 digits
Int32 또는 UInt32Int32 or UInt32 10개의 자릿수10 digits
Int64 19개의 자릿수19 digits
UInt64 20개의 자릿수20 digits
BigInteger 무제한("R"과 동일)Unlimited (same as "R")
Single 7개의 자릿수7 digits
Double 15개의 자릿수15 digits
Decimal 29개의 자릿수29 digits

숫자를 과학적 표기법으로 나타낸 값이 -5보다 크고 전체 자릿수 지정자보다 작으면 고정 소수점 표기법이 사용되고 그러지 않으면 과학적 표기법이 사용됩니다.Fixed-point notation is used if the exponent that would result from expressing the number in scientific notation is greater than -5 and less than the precision specifier; otherwise, scientific notation is used. 필요한 경우 결과에 소수점이 포함되고 소수점 뒤에 오는 0은 생략됩니다.The result contains a decimal point if required, and trailing zeros after the decimal point are omitted. 전체 자릿수 지정자가 있고 결과의 유효 숫자가 지정된 자릿수를 초과하면 뒤에 오는 초과 자릿수는 반올림을 통해 제거됩니다.If the precision specifier is present and the number of significant digits in the result exceeds the specified precision, the excess trailing digits are removed by rounding.

그러나 숫자가 Decimal일 때 전체 자릿수 지정자가 생략되면 항상 고정 소수점 표기법이 사용되며 뒤에 오는 0은 그대로 표시됩니다.However, if the number is a Decimal and the precision specifier is omitted, fixed-point notation is always used and trailing zeros are preserved.

과학적 표기법이 사용되면 서식 지정자가 'G'인 경우 결과의 지수 값 앞에 "E"가 붙고 서식 지정자가 "g"인 경우 앞에 "e"가 붙습니다.If scientific notation is used, the exponent in the result is prefixed with "E" if the format specifier is "G", or "e" if the format specifier is "g". 지수는 최소한 2자리로 구성됩니다.The exponent contains a minimum of two digits. 이는 지수 서식 지정자에 의해 생성되며 계수가 최소한 3자리로 구성되는 과학적 표기법의 서식과 다른 점입니다.This differs from the format for scientific notation that is produced by the exponential format specifier, which includes a minimum of three digits in the exponent.

Double 값과 함께 사용될 때 “G17” 형식 지정자는 원래 Double 값이 성공적으로 라운드트립되도록 합니다.Note that, when used with a Double value, the "G17" format specifier ensures that the original Double value successfully round-trips. 이는 Double이 최대 17자의 전체 유효 자릿수를 제공하는 IEEE 754-2008 규격의 배정밀도(binary64) 부동 소수점 숫자이기 때문입니다.This is because Double is an IEEE 754-2008-compliant double-precision (binary64) floating point number that gives up to 17 significant digits of precision. 일부 경우에 “R”이 배정밀도 부동 소수점 값을 성공적으로 라운드트립하지 못하기 때문에 “R” 형식 지정자 대신 사용하는 것이 좋습니다.We recommend its use instead of the "R" format specifier, since in some cases "R" fails to successfully round-trip double-precision floating point values. 다음 예제는 이러한 사례를 한 가지 보여줍니다.The following example illustrates one such case.

double original = 0.84551240822557006;
var rSpecifier = original.ToString("R");
var g17Specifier = original.ToString("G17");

var rValue = Double.Parse(rSpecifier);
var g17Value = Double.Parse(g17Specifier);

Console.WriteLine($"{original:G17} = {rSpecifier} (R): {original.Equals(rValue)}");
Console.WriteLine($"{original:G17} = {g17Specifier} (G17): {original.Equals(g17Value)}");
// The example displays the following output:
//     0.84551240822557006 = 0.84551240822557: False
//     0.84551240822557006 = 0.84551240822557006: True
Module Example
   Public Sub Main()
      Dim original As Double = 0.84551240822557006
      Dim rSpecifier = original.ToString("R")
      Dim g17Specifier = original.ToString("G17")
      
      Dim rValue = Double.Parse(rSpecifier)
      Dim g17Value = Double.Parse(g17Specifier)
      
      Console.WriteLine($"{original:G17} = {rSpecifier} (R): {original.Equals(rValue)}")
      Console.WriteLine($"{original:G17} = {g17Specifier} (G17): {original.Equals(g17Value)}")
   End Sub
End Module
' The example displays the following output:
'     0.84551240822557006 = 0.84551240822557 (R): False
'     0.84551240822557006 = 0.84551240822557006 (G17): True
  

Single 값과 함께 사용될 때 “G9” 형식 지정자는 원래 Single 값이 성공적으로 라운드트립되도록 합니다.When used with a Single value, the "G9" format specifier ensures that the original Single value successfully round-trips. 이는 Single이 최대 9자의 전체 유효 자릿수를 제공하는 IEEE 754-2008 규격의 단정밀도(binary32) 부동 소수점 숫자이기 때문입니다.This is because Single is an IEEE 754-2008-compliant single-precision (binary32) floating point number that gives up to nine significant digits of precision. 성능을 위해 "R" 형식 지정자 대신 사용하는 것이 좋습니다.For performance reasons, we recommend its use instead of the "R" format specifier.

결과 문자열은 현재 NumberFormatInfo 개체의 서식 지정 정보에 영향을 받습니다.The result string is affected by the formatting information of the current NumberFormatInfo object. 다음 표에서는 결과 문자열의 서식을 제어하는 NumberFormatInfo 속성을 보여 줍니다.The following table lists the NumberFormatInfo properties that control the formatting of the result string.

NumberFormatInfo 속성NumberFormatInfo property 설명Description
NegativeSign 숫자가 음수임을 나타내는 문자열을 정의합니다.Defines the string that indicates that a number is negative.
NumberDecimalSeparator 정수 부분과 소수 부분을 구분하는 문자열을 정의합니다.Defines the string that separates integral digits from decimal digits.
PositiveSign 지수가 양수임을 나타내는 문자열을 정의합니다.Defines the string that indicates that an exponent is positive.

다음 예제에서는 일반 서식 지정자를 사용하여 분류된 부동 소수점 값에 서식을 지정합니다.The following example formats assorted floating-point values with the general format specifier.

double number;

number = 12345.6789;      
Console::WriteLine(number.ToString("G", CultureInfo::InvariantCulture));
// Displays  12345.6789
Console::WriteLine(number.ToString("G", 
                  CultureInfo::CreateSpecificCulture("fr-FR")));
// Displays 12345,6789
                        
Console::WriteLine(number.ToString("G7", CultureInfo::InvariantCulture));
// Displays 12345.68 

number = .0000023;
Console::WriteLine(number.ToString("G", CultureInfo::InvariantCulture));
// Displays 2.3E-06       
Console::WriteLine(number.ToString("G", 
                  CultureInfo::CreateSpecificCulture("fr-FR")));
// Displays 2,3E-06

number = .0023;
Console::WriteLine(number.ToString("G", CultureInfo::InvariantCulture));
// Displays 0.0023

number = 1234;
Console::WriteLine(number.ToString("G2", CultureInfo::InvariantCulture));
// Displays 1.2E+03

number = Math::PI;
Console::WriteLine(number.ToString("G5", CultureInfo::InvariantCulture));
// Displays 3.1416    
double number;

number = 12345.6789;      
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays  12345.6789
Console.WriteLine(number.ToString("G", 
                  CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 12345,6789
                        
Console.WriteLine(number.ToString("G7", CultureInfo.InvariantCulture));
// Displays 12345.68 

number = .0000023;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 2.3E-06       
Console.WriteLine(number.ToString("G", 
                  CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 2,3E-06

number = .0023;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 0.0023

number = 1234;
Console.WriteLine(number.ToString("G2", CultureInfo.InvariantCulture));
// Displays 1.2E+03

number = Math.PI;
Console.WriteLine(number.ToString("G5", CultureInfo.InvariantCulture));
// Displays 3.1416    
Dim number As Double

number = 12345.6789      
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays  12345.6789
Console.WriteLine(number.ToString("G", _
                  CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 12345,6789
                        
Console.WriteLine(number.ToString("G7", CultureInfo.InvariantCulture))
' Displays 12345.68 

number = .0000023
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays 2.3E-06       
Console.WriteLine(number.ToString("G", _
                  CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 2,3E-06

number = .0023
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays 0.0023

number = 1234
Console.WriteLine(number.ToString("G2", CultureInfo.InvariantCulture))
' Displays 1.2E+03

number = Math.Pi
Console.WriteLine(number.ToString("G5", CultureInfo.InvariantCulture))
' Displays 3.1416    

표로 이동Back to table

숫자("N") 서식 지정자The Numeric ("N") Format Specifier

숫자("N") 서식 지정자는 숫자를 "-d,ddd,ddd.ddd…" 형태의 문자열로 변환합니다. 여기서 "-"는 필요한 경우 음수 기호를 나타내고, "d"는 숫자(0-9)를 나타내고, ","는 그룹 구분 기호를 나타내고, "."은 소수점 기호를 나타냅니다.The numeric ("N") format specifier converts a number to a string of the form "-d,ddd,ddd.ddd…", where "-" indicates a negative number symbol if required, "d" indicates a digit (0-9), "," indicates a group separator, and "." indicates a decimal point symbol. 전체 자릿수 지정자는 소수점 뒤에 필요한 자릿수를 나타냅니다.The precision specifier indicates the desired number of digits after the decimal point. 전체 자릿수 지정자를 생략하면 현재 NumberFormatInfo.NumberDecimalDigits 속성에 의해 소수 자릿수가 정의됩니다.If the precision specifier is omitted, the number of decimal places is defined by the current NumberFormatInfo.NumberDecimalDigits property.

결과 문자열은 현재 NumberFormatInfo 개체의 서식 지정 정보에 영향을 받습니다.The result string is affected by the formatting information of the current NumberFormatInfo object. 다음 표에서는 결과 문자열의 서식을 제어하는 NumberFormatInfo 속성을 보여 줍니다.The following table lists the NumberFormatInfo properties that control the formatting of the result string.

NumberFormatInfo 속성NumberFormatInfo property 설명Description
NegativeSign 숫자가 음수임을 나타내는 문자열을 정의합니다.Defines the string that indicates that a number is negative.
NumberNegativePattern 음수 값의 서식을 정의하고 음수 기호를 괄호로 나타낼지 아니면 NegativeSign 속성으로 나타낼지 여부를 지정합니다.Defines the format of negative values, and specifies whether the negative sign is represented by parentheses or the NegativeSign property.
NumberGroupSizes 그룹 구분 기호 사이에 표시할 정수 자릿수를 정의합니다.Defines the number of integral digits that appear between group separators.
NumberGroupSeparator 정수 그룹을 구분하는 문자열을 정의합니다.Defines the string that separates groups of integral numbers.
NumberDecimalSeparator 정수 부분과 소수 부분을 구분하는 문자열을 정의합니다.Defines the string that separates integral and decimal digits.
NumberDecimalDigits 기본 소수 자릿수를 정의합니다.Defines the default number of decimal digits. 전체 자릿수 지정자를 사용하여 이 값을 재정의할 수 있습니다.This value can be overridden by using a precision specifier.

다음 예제에서는 숫자 서식 지정자를 사용하여 분류된 부동 소수점 값에 서식을 지정합니다.The following example formats assorted floating-point values with the number format specifier.

double dblValue = -12445.6789;
Console::WriteLine(dblValue.ToString("N", CultureInfo::InvariantCulture));
// Displays -12,445.68
Console::WriteLine(dblValue.ToString("N1", 
                  CultureInfo::CreateSpecificCulture("sv-SE")));
// Displays -12 445,7

int intValue = 123456789;
Console::WriteLine(intValue.ToString("N1", CultureInfo::InvariantCulture));
// Displays 123,456,789.0 
double dblValue = -12445.6789;
Console.WriteLine(dblValue.ToString("N", CultureInfo.InvariantCulture));
// Displays -12,445.68
Console.WriteLine(dblValue.ToString("N1", 
                  CultureInfo.CreateSpecificCulture("sv-SE")));
// Displays -12 445,7

int intValue = 123456789;
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture));
// Displays 123,456,789.0 
Dim dblValue As Double = -12445.6789
Console.WriteLine(dblValue.ToString("N", CultureInfo.InvariantCulture))
' Displays -12,445.68
Console.WriteLine(dblValue.ToString("N1", _
                  CultureInfo.CreateSpecificCulture("sv-SE")))
' Displays -12 445,7

Dim intValue As Integer = 123456789
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture))
' Displays 123,456,789.0 

표로 이동Back to table

백분율("P") 서식 지정자The Percent ("P") Format Specifier

백분율("P") 서식 지정자는 숫자를 100으로 곱한 다음 백분율을 나타내는 문자열로 변환합니다.The percent ("P") format specifier multiplies a number by 100 and converts it to a string that represents a percentage. 전체 자릿수 지정자는 필요한 소수 자릿수를 나타냅니다.The precision specifier indicates the desired number of decimal places. 전체 자릿수 지정자를 생략하면 현재 PercentDecimalDigits 속성에서 제공하는 기본 숫자 전체 자릿수가 사용됩니다.If the precision specifier is omitted, the default numeric precision supplied by the current PercentDecimalDigits property is used.

다음 표에서는 반환된 문자열의 서식을 제어하는 NumberFormatInfo 속성을 보여 줍니다.The following table lists the NumberFormatInfo properties that control the formatting of the returned string.

NumberFormatInfo 속성NumberFormatInfo property 설명Description
PercentPositivePattern 양수 값의 백분율 기호 위치를 정의합니다.Defines the placement of the percent symbol for positive values.
PercentNegativePattern 백분율 기호 위치와 음수 값의 음수 기호 위치를 정의합니다.Defines the placement of the percent symbol and the negative symbol for negative values.
NegativeSign 숫자가 음수임을 나타내는 문자열을 정의합니다.Defines the string that indicates that a number is negative.
PercentSymbol 백분율 기호를 정의합니다.Defines the percent symbol.
PercentDecimalDigits 백분율 값의 기본 소수 자릿수를 정의합니다.Defines the default number of decimal digits in a percentage value. 전체 자릿수 지정자를 사용하여 이 값을 재정의할 수 있습니다.This value can be overridden by using the precision specifier.
PercentDecimalSeparator 정수 부분과 소수 부분을 구분하는 문자열을 정의합니다.Defines the string that separates integral and decimal digits.
PercentGroupSeparator 정수 그룹을 구분하는 문자열을 정의합니다.Defines the string that separates groups of integral numbers.
PercentGroupSizes 그룹에 표시할 정수 자릿수를 정의합니다.Defines the number of integer digits that appear in a group.

다음 예제에서는 백분율 서식 지정자를 사용하여 부동 소수점 값에 서식을 지정합니다.The following example formats floating-point values with the percent format specifier.

double number = .2468013;
Console::WriteLine(number.ToString("P", CultureInfo::InvariantCulture));
// Displays 24.68 %
Console::WriteLine(number.ToString("P", 
                  CultureInfo::CreateSpecificCulture("hr-HR")));
// Displays 24,68%     
Console::WriteLine(number.ToString("P1", CultureInfo::InvariantCulture));
// Displays 24.7 %
double number = .2468013;
Console.WriteLine(number.ToString("P", CultureInfo.InvariantCulture));
// Displays 24.68 %
Console.WriteLine(number.ToString("P", 
                  CultureInfo.CreateSpecificCulture("hr-HR")));
// Displays 24,68%     
Console.WriteLine(number.ToString("P1", CultureInfo.InvariantCulture));
// Displays 24.7 %
Dim number As Double = .2468013
Console.WriteLine(number.ToString("P", CultureInfo.InvariantCulture))
' Displays 24.68 %
Console.WriteLine(number.ToString("P", _
                  CultureInfo.CreateSpecificCulture("hr-HR")))
' Displays 24,68%     
Console.WriteLine(number.ToString("P1", CultureInfo.InvariantCulture))
' Displays 24.7 %

표로 이동Back to table

라운드트립("R") 서식 지정자The Round-trip ("R") Format Specifier

라운드트립(“R”) 형식 지정자는 문자열로 변환된 숫자 값이 같은 숫자 값으로 다시 구문 분석되도록 시도합니다.The round-trip ("R") format specifier attempts to ensure that a numeric value that is converted to a string is parsed back into the same numeric value. 이 서식은 Single, DoubleBigInteger 형식에만 사용할 수 있습니다.This format is supported only for the Single, Double, and BigInteger types.

Double 값의 경우 "R" 형식 지정자가 원래 값을 성공적으로 라운드트립하지 못하는 경우가 있습니다.For Double values, the "R" format specifier in some cases fails to successfully round-trip the original value. 또한 DoubleSingle 값 모두에 상대적으로 낮은 성능을 제공합니다.For both Double and Single values, it also offers relatively poor performance. 대신 Double 값에는 “G17” 형식 지정자, Single 값에는 “G9” 형식 지정자를 사용하여 원래 값을 라운드트립하는 것이 좋습니다.Instead, we recommend that you use the "G17" format specifier for Double values and the "G9" format specifier to successfully round-trip Single values.

이 지정자를 사용하여 BigInteger 값의 서식을 지정하면 해당 문자열 표현에 BigInteger 값의 모든 유효 자릿수가 포함됩니다.When a BigInteger value is formatted using this specifier, its string representation contains all the significant digits in the BigInteger value.

전체 자릿수 지정자는 포함되어 있더라도 무시됩니다.Although you can include a precision specifier, it is ignored. 이 지정자를 사용할 때는 라운드트립이 전체 자릿수보다 우선합니다.Round trips are given precedence over precision when using this specifier.
결과 문자열은 현재 NumberFormatInfo 개체의 서식 지정 정보에 영향을 받습니다.The result string is affected by the formatting information of the current NumberFormatInfo object. 다음 표에서는 결과 문자열의 서식을 제어하는 NumberFormatInfo 속성을 보여 줍니다.The following table lists the NumberFormatInfo properties that control the formatting of the result string.

NumberFormatInfo 속성NumberFormatInfo property 설명Description
NegativeSign 숫자가 음수임을 나타내는 문자열을 정의합니다.Defines the string that indicates that a number is negative.
NumberDecimalSeparator 정수 부분과 소수 부분을 구분하는 문자열을 정의합니다.Defines the string that separates integral digits from decimal digits.
PositiveSign 지수가 양수임을 나타내는 문자열을 정의합니다.Defines the string that indicates that an exponent is positive.

다음 예제에서는 라운드트립 형식 지정자를 사용하여 BigInteger 값의 서식을 지정합니다.The following example formats a BigInteger value with the round-trip format specifier.

#using <System.Numerics.dll>

using namespace System;
using namespace System::Numerics;

void main()
{ 
   BigInteger value = BigInteger::Pow(Int64::MaxValue, 2);
   Console::WriteLine(value.ToString("R"));
}
// The example displays the following output:
//      85070591730234615847396907784232501249  


using System;
using System.Numerics;

public class Example
{
   public static void Main()
   { 
      var value = BigInteger.Pow(Int64.MaxValue, 2);
      Console.WriteLine(value.ToString("R"));
   }
}                                                                                        // The example displays the following output:
//      85070591730234615847396907784232501249  


Imports System.Numerics

Module Example
   Public Sub Main()
      Dim value = BigInteger.Pow(Int64.MaxValue, 2)
      Console.WriteLine(value.ToString("R"))
   End Sub
End Module
' The example displays the following output:
'      85070591730234615847396907784232501249  

중요

/platform:x64 또는 /platform:anycpu 스위치를 사용하여 컴파일되고 64비트 시스템에서 실행되는 경우 "R" 표준 숫자 형식 문자열로 형식이 지정된 Double 값이 성공적으로 라운드트립되지 않는 경우가 있습니다.In some cases, Double values formatted with the "R" standard numeric format string do not successfully round-trip if compiled using the /platform:x64 or /platform:anycpu switches and run on 64-bit systems. 자세한 내용은 다음 단락을 참조하세요.See the following paragraph for more information.

/platform:x64 또는 /platform:anycpu 스위치를 사용하여 컴파일되고 64비트 시스템에서 실행되는 경우 "R" 표준 숫자 형식 문자열로 형식이 지정된 Double 값이 성공적으로 라운드트립되지 않는 문제를 해결하려면 "G17" 표준 숫자 서식 문자열을 사용하여 Double 값에 서식을 지정하면 됩니다.To work around the problem of Double values formatted with the "R" standard numeric format string not successfully round-tripping if compiled using the /platform:x64 or /platform:anycpu switches and run on 64-bit systems., you can format Double values by using the "G17" standard numeric format string. 다음 예제에서는 성공적으로 라운드트립되지 않는 Double 값에 "R" 형식 문자열을 사용하고 "G17" 형식 문자열도 사용하여 원래 값을 성공적으로 라운드트립합니다.The following example uses the "R" format string with a Double value that does not round-trip successfully, and also uses the "G17" format string to successfully round-trip the original value.

Console.WriteLine("Attempting to round-trip a Double with 'R':");
double initialValue = 0.6822871999174;
string valueString = initialValue.ToString("R",
                                           CultureInfo.InvariantCulture);
double roundTripped = double.Parse(valueString,
                                   CultureInfo.InvariantCulture);
Console.WriteLine("{0:R} = {1:R}: {2}\n",
                  initialValue, roundTripped, initialValue.Equals(roundTripped));

Console.WriteLine("Attempting to round-trip a Double with 'G17':");
string valueString17 = initialValue.ToString("G17",
                                             CultureInfo.InvariantCulture);
double roundTripped17 = double.Parse(valueString17,
                                     CultureInfo.InvariantCulture);
Console.WriteLine("{0:R} = {1:R}: {2}\n",
                  initialValue, roundTripped17, initialValue.Equals(roundTripped17));
// If compiled to an application that targets anycpu or x64 and run on an x64 system,
// the example displays the following output:
//       Attempting to round-trip a Double with 'R':
//       0.6822871999174 = 0.68228719991740006: False
//
//       Attempting to round-trip a Double with 'G17':
//       0.6822871999174 = 0.6822871999174: True
Imports System.Globalization

Module Example
   Public Sub Main()
      Console.WriteLine("Attempting to round-trip a Double with 'R':")
      Dim initialValue As Double = 0.6822871999174
      Dim valueString As String = initialValue.ToString("R",
                                               CultureInfo.InvariantCulture)
      Dim roundTripped As Double = Double.Parse(valueString,
                                                CultureInfo.InvariantCulture)
      Console.WriteLine("{0:R} = {1:R}: {2}",
                        initialValue, roundTripped, initialValue.Equals(roundTripped))
      Console.WriteLine()
      
      Console.WriteLine("Attempting to round-trip a Double with 'G17':")
      Dim valueString17 As String = initialValue.ToString("G17",
                                                 CultureInfo.InvariantCulture)
      Dim roundTripped17 As Double = double.Parse(valueString17,
                                            CultureInfo.InvariantCulture)
      Console.WriteLine("{0:R} = {1:R}: {2}",
                        initialValue, roundTripped17, initialValue.Equals(roundTripped17))
   End Sub
End Module
' If compiled to an application that targets anycpu or x64 and run on an x64 system,
' the example displays the following output:
'       Attempting to round-trip a Double with 'R':
'       0.6822871999174 = 0.68228719991740006: False
'
'       Attempting to round-trip a Double with 'G17':
'       0.6822871999174 = 0.6822871999174: True

표로 이동Back to table

16진수("X") 서식 지정자The Hexadecimal ("X") Format Specifier

16진수("X") 서식 지정자는 숫자를 16진수 문자열로 변환합니다.The hexadecimal ("X") format specifier converts a number to a string of hexadecimal digits. 서식 지정자의 대/소문자에 따라 9보다 큰 16진수에 대문자를 사용할지 아니면 소문자를 사용할지 여부가 결정됩니다.The case of the format specifier indicates whether to use uppercase or lowercase characters for hexadecimal digits that are greater than 9. 예를 들어, "X"를 사용하면 "ABCDEF"가 만들어지고 "x"를 사용하면 "abcdef"가 만들어집니다.For example, use "X" to produce "ABCDEF", and "x" to produce "abcdef". 이 서식은 정수 계열 형식에만 사용할 수 있습니다.This format is supported only for integral types.

전체 자릿수 지정자는 결과 문자열에서 요구하는 최소 자릿수를 나타냅니다.The precision specifier indicates the minimum number of digits desired in the resulting string. 필요하면 수의 왼쪽을 0으로 채워서 전체 자릿수 지정자에서 지정한 자릿수를 만듭니다.If required, the number is padded with zeros to its left to produce the number of digits given by the precision specifier.

결과 문자열은 현재 NumberFormatInfo 개체에 대한 서식 지정 정보의 영향을 받지 않습니다.The result string is not affected by the formatting information of the current NumberFormatInfo object.

다음 예제에서는 16진수 서식 지정자를 사용하여 Int32 값의 서식을 지정합니다.The following example formats Int32 values with the hexadecimal format specifier.

int value; 

value = 0x2045e;
Console::WriteLine(value.ToString("x"));
// Displays 2045e
Console::WriteLine(value.ToString("X"));
// Displays 2045E
Console::WriteLine(value.ToString("X8"));
// Displays 0002045E

value = 123456789;
Console::WriteLine(value.ToString("X"));
// Displays 75BCD15
Console::WriteLine(value.ToString("X2"));
// Displays 75BCD15
int value; 

value = 0x2045e;
Console.WriteLine(value.ToString("x"));
// Displays 2045e
Console.WriteLine(value.ToString("X"));
// Displays 2045E
Console.WriteLine(value.ToString("X8"));
// Displays 0002045E

value = 123456789;
Console.WriteLine(value.ToString("X"));
// Displays 75BCD15
Console.WriteLine(value.ToString("X2"));
// Displays 75BCD15
Dim value As Integer 

value = &h2045e
Console.WriteLine(value.ToString("x"))
' Displays 2045e
Console.WriteLine(value.ToString("X"))
' Displays 2045E
Console.WriteLine(value.ToString("X8"))
' Displays 0002045E

value = 123456789
Console.WriteLine(value.ToString("X"))
' Displays 75BCD15
Console.WriteLine(value.ToString("X2"))
' Displays 75BCD15

표로 이동Back to table

참고 사항Notes

제어판 설정Control Panel Settings

제어판에 있는 국가 및 언어 옵션 항목의 설정은 서식 지정 작업으로 생성되는 결과 문자열에 영향을 줍니다.The settings in the Regional and Language Options item in Control Panel influence the result string produced by a formatting operation. 이러한 설정은 서식을 제어하는 데 사용되는 값을 제공하는 현재 스레드 문화권과 연결된 NumberFormatInfo 개체를 초기화하는 데 사용됩니다.Those settings are used to initialize the NumberFormatInfo object associated with the current thread culture, which provides values used to govern formatting. 다른 설정을 사용하는 컴퓨터는 다른 결과 문자열을 생성합니다.Computers that use different settings generate different result strings.

또한 현재 시스템 문화권과 같은 문화권을 나타내는 새 CultureInfo 개체를 인스턴스화하는 데 CultureInfo.CultureInfo(String) 생성자가 사용된 경우 제어판의 국가 및 언어 옵션 항목을 통해 설정된 사용자 지정 내용이 새 CultureInfo 개체에도 적용됩니다.In addition, if the CultureInfo.CultureInfo(String) constructor is used to instantiate a new CultureInfo object that represents the same culture as the current system culture, any customizations established by the Regional and Language Options item in Control Panel will be applied to the new CultureInfo object. CultureInfo.CultureInfo(String, Boolean) 생성자를 사용하면 시스템의 사용자 지정 내용이 반영되지 않는 CultureInfo 개체를 만들 수 있습니다.You can use the CultureInfo.CultureInfo(String, Boolean) constructor to create a CultureInfo object that does not reflect a system's customizations.

NumberFormatInfo 속성NumberFormatInfo Properties

서식 지정 작업은 현재 NumberFormatInfo 개체의 속성에 따라 영향을 받으며 이 개체는 현재 스레드 문화권에 의해 암시적으로 제공되거나 서식 지정 작업을 호출하는 메서드의 IFormatProvider 매개 변수를 통해 명시적으로 제공됩니다.Formatting is influenced by the properties of the current NumberFormatInfo object, which is provided implicitly by the current thread culture or explicitly by the IFormatProvider parameter of the method that invokes formatting. 이 매개 변수에는 NumberFormatInfo 또는 CultureInfo 개체를 지정합니다.Specify a NumberFormatInfo or CultureInfo object for that parameter.

참고

숫자 값 서식 지정에 사용되는 패턴 또는 문자열에 대한 자세한 내용은 NumberFormatInfo 클래스 항목을 참조하세요.For information about customizing the patterns or strings used in formatting numeric values, see the NumberFormatInfo class topic.

정수 계열 및 부동 소수점 숫자 형식Integral and Floating-Point Numeric Types

표준 숫자 서식 지정자에 대한 설명 중에는 정수 계열 및 부동 소수점 숫자 형식이 언급되어 있습니다.Some descriptions of standard numeric format specifiers refer to integral or floating-point numeric types. 정수 계열 숫자 형식은 Byte, SByte, Int16, Int32, Int64, UInt16, UInt32, UInt64BigInteger이고,The integral numeric types are Byte, SByte, Int16, Int32, Int64, UInt16, UInt32, UInt64, and BigInteger. 부동 소수점 숫자 형식은 Decimal, SingleDouble입니다.The floating-point numeric types are Decimal, Single, and Double.

부동 소수점 무한대 및 NaNFloating-Point Infinities and NaN

서식 문자열에 관계없이 Single 또는 Double 부동 소수점 형식의 값이 양의 무한대, 음의 무한대 또는 NaN(Not a Number)이면 서식이 지정된 문자열은 각각 현재 적용 가능한 PositiveInfinitySymbol 개체에서 지정하는 해당 NegativeInfinitySymbol, NaNSymbol 또는 NumberFormatInfo 속성의 값입니다.Regardless of the format string, if the value of a Single or Double floating-point type is positive infinity, negative infinity, or not a number (NaN), the formatted string is the value of the respective PositiveInfinitySymbol, NegativeInfinitySymbol, or NaNSymbol property that is specified by the currently applicable NumberFormatInfo object.

예제Example

참고

이 문서의 일부 C# 예제는 Try.NET 인라인 코드 실행기 및 플레이그라운드에서 실행됩니다.Some of the C# examples in this article run in the Try.NET inline code runner and playground. 대화형 창에서 예제를 실행하려면 실행 버튼을 선택합니다.Select the Run button to run an example in an interactive window. 코드를 실행하면 실행을 다시 선택하여 코드를 수정하고 수정된 코드를 실행할 수 있습니다.Once you execute the code, you can modify it and run the modified code by selecting Run again. 수정된 코드는 대화형 창에서 실행되거나, 컴파일이 실패하면 대화형 창에 모든 C# 컴파일러 오류 메시지가 표시됩니다.The modified code either runs in the interactive window or, if compilation fails, the interactive window displays all C# compiler error messages.

다음 예제에서는 en-US 문화권 및 모든 표준 숫자 서식 지정자를 사용하여 정수 숫자 값과 부동 소수점 숫자 값의 서식을 지정합니다.The following example formats an integral and a floating-point numeric value using the en-US culture and all the standard numeric format specifiers. 이 코드 예제에서는 두 개의 특정 숫자 형식(DoubleInt32)을 사용하지만 다른 기타 숫자 기본 형식(Byte, SByte, Int16, Int32, Int64, UInt16, UInt32, UInt64, BigInteger, DecimalSingle)을 사용해도 유사한 결과가 생성됩니다.This example uses two particular numeric types (Double and Int32), but would yield similar results for any of the other numeric base types (Byte, SByte, Int16, Int32, Int64, UInt16, UInt32, UInt64, BigInteger, Decimal, and Single).

// Display string representations of numbers for en-us culture
CultureInfo ci = new CultureInfo("en-us");

// Output floating point values
double floating = 10761.937554;
Console.WriteLine("C: {0}", 
        floating.ToString("C", ci));           // Displays "C: $10,761.94"
Console.WriteLine("E: {0}", 
        floating.ToString("E03", ci));         // Displays "E: 1.076E+004"
Console.WriteLine("F: {0}", 
        floating.ToString("F04", ci));         // Displays "F: 10761.9376"         
Console.WriteLine("G: {0}",  
        floating.ToString("G", ci));           // Displays "G: 10761.937554"
Console.WriteLine("N: {0}", 
        floating.ToString("N03", ci));         // Displays "N: 10,761.938"
Console.WriteLine("P: {0}", 
        (floating/10000).ToString("P02", ci)); // Displays "P: 107.62 %"
Console.WriteLine("R: {0}", 
        floating.ToString("R", ci));           // Displays "R: 10761.937554"            
Console.WriteLine();

// Output integral values
int integral = 8395;
Console.WriteLine("C: {0}", 
        integral.ToString("C", ci));           // Displays "C: $8,395.00"
Console.WriteLine("D: {0}", 
        integral.ToString("D6", ci));          // Displays "D: 008395" 
Console.WriteLine("E: {0}", 
        integral.ToString("E03", ci));         // Displays "E: 8.395E+003"
Console.WriteLine("F: {0}", 
        integral.ToString("F01", ci));         // Displays "F: 8395.0"    
Console.WriteLine("G: {0}",  
        integral.ToString("G", ci));           // Displays "G: 8395"
Console.WriteLine("N: {0}", 
        integral.ToString("N01", ci));         // Displays "N: 8,395.0"
Console.WriteLine("P: {0}", 
        (integral/10000.0).ToString("P02", ci)); // Displays "P: 83.95 %"
Console.WriteLine("X: 0x{0}", 
        integral.ToString("X", ci));           // Displays "X: 0x20CB"
Console.WriteLine();
Option Strict On

Imports System.Globalization
Imports System.Threading

Module NumericFormats
   Public Sub Main()
      ' Display string representations of numbers for en-us culture
      Dim ci As New CultureInfo("en-us")
      
      ' Output floating point values
      Dim floating As Double = 10761.937554
      Console.WriteLine("C: {0}", _
              floating.ToString("C", ci))           ' Displays "C: $10,761.94"
      Console.WriteLine("E: {0}", _
              floating.ToString("E03", ci))         ' Displays "E: 1.076E+004"
      Console.WriteLine("F: {0}", _
              floating.ToString("F04", ci))         ' Displays "F: 10761.9376"         
      Console.WriteLine("G: {0}", _ 
              floating.ToString("G", ci))           ' Displays "G: 10761.937554"
      Console.WriteLine("N: {0}", _
              floating.ToString("N03", ci))         ' Displays "N: 10,761.938"
      Console.WriteLine("P: {0}", _
              (floating/10000).ToString("P02", ci)) ' Displays "P: 107.62 %"
      Console.WriteLine("R: {0}", _
              floating.ToString("R", ci))           ' Displays "R: 10761.937554"            
      Console.WriteLine()
      
      ' Output integral values
      Dim integral As Integer = 8395
      Console.WriteLine("C: {0}", _
              integral.ToString("C", ci))           ' Displays "C: $8,395.00"
      Console.WriteLine("D: {0}", _
              integral.ToString("D6"))              ' Displays "D: 008395" 
      Console.WriteLine("E: {0}", _
              integral.ToString("E03", ci))         ' Displays "E: 8.395E+003"
      Console.WriteLine("F: {0}", _
              integral.ToString("F01", ci))         ' Displays "F: 8395.0"    
      Console.WriteLine("G: {0}", _ 
              integral.ToString("G", ci))           ' Displays "G: 8395"
      Console.WriteLine("N: {0}", _
              integral.ToString("N01", ci))         ' Displays "N: 8,395.0"
      Console.WriteLine("P: {0}", _
              (integral/10000).ToString("P02", ci)) ' Displays "P: 83.95 %"
      Console.WriteLine("X: 0x{0}", _
              integral.ToString("X", ci))           ' Displays "X: 0x20CB"
      Console.WriteLine()
   End Sub
End Module

참고 항목See also