NumberStyles 열거형
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
정수 및 부동 소수점 숫자 형식의 Parse
및 TryParse
메서드에 전달되는 숫자 문자열에서 사용할 수 있는 스타일을 결정합니다.
이 열거형은 멤버 값의 비트 조합을 지원합니다.
public enum class NumberStyles
[System.Flags]
public enum NumberStyles
[System.Flags]
[System.Serializable]
public enum NumberStyles
[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum NumberStyles
[<System.Flags>]
type NumberStyles =
[<System.Flags>]
[<System.Serializable>]
type NumberStyles =
[<System.Flags>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type NumberStyles =
Public Enum NumberStyles
- 상속
- 특성
필드
AllowBinarySpecifier | 1024 | 숫자 문자열이 이진 값을 나타낸다는 것을 나타냅니다. 유효한 이진 값에는 숫자 0과 1이 포함됩니다. 이 스타일을 사용하여 구문 분석되는 문자열은 접두사를 사용하지 않습니다. |
AllowCurrencySymbol | 256 | 숫자 문자열에 통화 기호가 포함될 수 있음을 나타냅니다. 유효한 통화 기호는 CurrencySymbol 속성으로 결정됩니다. |
AllowDecimalPoint | 32 | 숫자 문자열에 소수점이 있을 수 있음을 나타냅니다. NumberStyles 값에 AllowCurrencySymbol 플래그가 포함되고 구문 분석된 문자열에 통화 기호가 포함된 경우 10진 구분 기호 문자는 CurrencyDecimalSeparator 속성으로 결정됩니다. 그렇지 않으면 소수 구분 문자가 NumberDecimalSeparator 속성으로 결정됩니다. |
AllowExponent | 128 | 숫자 문자열에 지수 표시가 있을 수 있음을 나타냅니다. AllowExponent 플래그를 사용하면 구문 분석된 문자열에 "E" 또는 "e" 문자로 시작하고 선택적 양 또는 음의 부호 및 정수가 있는 지수를 포함할 수 있습니다. 즉, nnnExx, nnnE+xx 및 nnnE-xx 형식으로 문자열을 성공적으로 구문 분석합니다. 소수 구분 기호나 유효 숫자 또는 가수의 부호를 허용하지 않습니다. 구문 분석될 문자열에서 이러한 요소를 허용하려면 AllowDecimalPoint 및 AllowLeadingSign 플래그를 사용하거나 이러한 개별 플래그가 포함된 복합 스타일을 사용합니다. |
AllowHexSpecifier | 512 | 숫자 문자열이 16진수 값을 나타낸다는 것을 나타냅니다. 유효한 16진수 값은 0부터 9까지의 숫자와 A부터 F 및 a부터 f까지의 16진 문자를 포함합니다. 이 스타일을 사용하여 구문 분석되는 문자열은 접두사로 "0x" 또는 "&h"로 지정할 수 없습니다. AllowHexSpecifier 스타일을 사용하여 구문 분석된 문자열은 항상 16진수 값으로 해석됩니다. AllowHexSpecifier와 함께 사용할 수 있는 플래그는 AllowLeadingWhite 및 AllowTrailingWhite뿐입니다. NumberStyles 열거형에는 이러한 세 플래그로 구성된 복합 스타일인 HexNumber가 포함됩니다. |
AllowLeadingSign | 4 | 숫자 문자열에 선행 부호가 있을 수 있음을 나타냅니다. 유효한 선행 부호 문자는 PositiveSign 및 NegativeSign 속성으로 결정됩니다. |
AllowLeadingWhite | 1 | 구문 분석된 문자열에 선행 공백 문자를 사용할 수 있음을 나타냅니다. 공백 문자의 유니코드 값은 U+0009, U+000A, U+000B, U+000C, U+000D 및 U+0020입니다. 이는 IsWhiteSpace(Char) 메서드가 |
AllowParentheses | 16 | 숫자 문자열에 숫자를 둘러싸는 한 쌍의 괄호가 있을 수 있음을 나타냅니다. 괄호는 구문 분석될 문자열이 음수를 나타냄을 나타냅니다. |
AllowThousands | 64 | 숫자 문자열에 1000 단위를 구분하는 기호와 같은 그룹 구분 기호가 있을 수 있음을 나타냅니다. 값에 NumberStyles 플래그가 AllowCurrencySymbol 포함되고 구문 분석할 문자열에 통화 기호가 포함된 경우 유효한 그룹 구분 기호 문자는 속성에 의해 CurrencyGroupSeparator 결정되고 각 그룹의 숫자 수는 속성에 의해 CurrencyGroupSizes 결정됩니다. 그렇지 않으면 유효한 그룹 구분 문자가 NumberGroupSeparator 속성으로 결정되며 각 그룹의 자릿수는 NumberGroupSizes 속성으로 결정됩니다. |
AllowTrailingSign | 8 | 숫자 문자열에 후행 부호가 있을 수 있음을 나타냅니다. 유효한 후행 부호 문자는 PositiveSign 및 NegativeSign 속성으로 결정됩니다. |
AllowTrailingWhite | 2 | 구문 분석된 문자열에 후행 공백 문자를 사용할 수 있음을 나타냅니다. 공백 문자의 유니코드 값은 U+0009, U+000A, U+000B, U+000C, U+000D 및 U+0020입니다. 이는 IsWhiteSpace(Char) 메서드가 |
Any | 511 | AllowHexSpecifier 및 AllowBinarySpecifier를 제외한 모든 스타일을 사용함을 나타냅니다. 이것은 복합 숫자 스타일입니다. |
BinaryNumber | 1027 | AllowLeadingWhite, AllowTrailingWhite 및 AllowBinarySpecifier 스타일을 사용함을 나타냅니다. 이것은 복합 숫자 스타일입니다. |
Currency | 383 | AllowExponent 및 AllowHexSpecifier를 제외한 모든 스타일을 사용함을 나타냅니다. 이것은 복합 숫자 스타일입니다. |
Float | 167 | AllowLeadingWhite, AllowTrailingWhite, AllowLeadingSign, AllowDecimalPoint 및 AllowExponent 스타일을 사용함을 나타냅니다. 이것은 복합 숫자 스타일입니다. |
HexNumber | 515 | AllowLeadingWhite, AllowTrailingWhite 및 AllowHexSpecifier 스타일을 사용함을 나타냅니다. 이것은 복합 숫자 스타일입니다. |
Integer | 7 | AllowLeadingWhite, AllowTrailingWhite 및 AllowLeadingSign 스타일을 사용함을 나타냅니다. 이것은 복합 숫자 스타일입니다. |
None | 0 | 구문 분석된 문자열에 선행 또는 후행 공백, 1000단위 구분 기호, 소수 구분 기호와 같은 스타일 요소가 있을 수 없다는 것을 나타냅니다. 구문 분석될 문자열은 정수로만 구성되어야 합니다. |
Number | 111 | AllowLeadingWhite, AllowTrailingWhite, AllowLeadingSign, AllowTrailingSign, AllowDecimalPoint 및 AllowThousands 스타일을 사용함을 나타냅니다. 이것은 복합 숫자 스타일입니다. |
예제
이 예제에서는 다양한 NumberStyles
플래그를 사용하여 문자열을 32비트 정수로 구문 분석하는 방법을 보여 줍니다.
using namespace System;
using namespace System::Text;
using namespace System::Globalization;
int main()
{
// Parse the string as a hex value and display the
// value as a decimal.
String^ numberString = "A";
int stringValue = Int32::Parse(numberString, NumberStyles::HexNumber);
Console::WriteLine("{0} in hex = {1} in decimal.",
numberString, stringValue);
// Parse the string, allowing a leading sign, and ignoring
// leading and trailing white spaces.
numberString = " -45 ";
stringValue =Int32::Parse(numberString, NumberStyles::AllowLeadingSign |
NumberStyles::AllowLeadingWhite | NumberStyles::AllowTrailingWhite);
Console::WriteLine("'{0}' parsed to an int is '{1}'.",
numberString, stringValue);
// Parse the string, allowing parentheses, and ignoring
// leading and trailing white spaces.
numberString = " (37) ";
stringValue = Int32::Parse(numberString, NumberStyles::AllowParentheses |
NumberStyles::AllowLeadingSign | NumberStyles::AllowLeadingWhite |
NumberStyles::AllowTrailingWhite);
Console::WriteLine("'{0}' parsed to an int is '{1}'.",
numberString, stringValue);
}
// This code produces the following output.
//
// A in hex = 10 in decimal.
// ' -45 ' parsed to an int is '-45'.
// ' (37) ' parsed to an int is '-37'.
using System;
using System.Text;
using System.Globalization;
public sealed class App
{
static void Main()
{
// Parse the string as a hex value and display the value as a decimal.
String num = "A";
int val = int.Parse(num, NumberStyles.HexNumber);
Console.WriteLine("{0} in hex = {1} in decimal.", num, val);
// Parse the string, allowing a leading sign, and ignoring leading and trailing white spaces.
num = " -45 ";
val = int.Parse(num, NumberStyles.AllowLeadingSign |
NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite);
Console.WriteLine("'{0}' parsed to an int is '{1}'.", num, val);
// Parse the string, allowing parentheses, and ignoring leading and trailing white spaces.
num = " (37) ";
val = int.Parse(num, NumberStyles.AllowParentheses | NumberStyles.AllowLeadingSign | NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite);
Console.WriteLine("'{0}' parsed to an int is '{1}'.", num, val);
}
}
// This code produces the following output.
//
// A in hex = 10 in decimal.
// ' -45 ' parsed to an int is '-45'.
// ' (37) ' parsed to an int is '-37'.
Imports System.Globalization
Imports System.Text
Public Module Example
Public Sub Main()
' Parse the string as a hex value and display the value as a decimal.
Dim num As String = "A"
Dim val As Integer = Int32.Parse(num, NumberStyles.HexNumber)
Console.WriteLine("{0} in hex = {1} in decimal.", num, val)
' Parse the string, allowing a leading sign, and ignoring leading and trailing white spaces.
num = " -45 "
val = Integer.Parse(num, NumberStyles.AllowLeadingSign Or
NumberStyles.AllowLeadingWhite Or
NumberStyles.AllowTrailingWhite)
Console.WriteLine("'{0}' parsed to an integer is '{1}'.", num, val)
' Parse the string, allowing parentheses, and ignoring leading and trailing white spaces.
num = " (37) "
val = Integer.Parse(num, NumberStyles.AllowParentheses Or
NumberStyles.AllowLeadingSign Or
NumberStyles.AllowLeadingWhite Or
NumberStyles.AllowTrailingWhite)
Console.WriteLine("'{0}' parsed to an integer is '{1}'.", num, val)
End Sub
End Module
' The example displays the following output:
' A in hex = 10 in decimal.
' ' -45 ' parsed to an int is '-45'.
' ' (37) ' parsed to an int is '-37'.
설명
열거형은 NumberStyles 숫자 값의 문자열 표현을 구문 분석하는 데 사용되는 두 종류의 열거형 값으로 구성됩니다.
- 구문 분석된 문자열에 있을 수 있는 특정 스타일 요소(예: 공백 및 그룹 구분 기호)를 정의하는 개별 필드 플래그입니다.
- 복합 숫자 스타일 - 구문 분석된 문자열에 있을 수 있는 스타일 요소를 정의하는 여러 필드 플래그로 구성됩니다.
를 AllowHexSpecifier
제외하고 열거형의 개별 필드 플래그 NumberStyles 는 10진수의 문자열 표현을 구문 분석할 때 사용되는 스타일 요소를 정의합니다.
None
는 구문 분석된 문자열에 숫자만 있을 수 있음을 나타냅니다. 나머지 개별 필드 플래그는 구문 분석 작업이 성공하기 위해 10진수의 문자열 표현에 있을 수 있지만 그렇게 할 필요는 없는 스타일 요소를 정의합니다. 반면, 플래그는 AllowHexSpecifier
구문 분석할 문자열이 항상 16진수 값으로 해석됨을 나타냅니다. 와 함께 AllowHexSpecifier
사용할 수 있는 유일한 개별 필드 플래그는 및 AllowTrailingWhite
입니다AllowLeadingWhite
. 열거형에는 NumberStyles 세 플래그 모두로 구성된 복합 숫자 스타일 HexNumber
가 포함됩니다.
구문 분석할 문자열에 나타날 수 있는 기호(예: 통화 기호, 그룹 구분 기호, 소수 구분 기호 및 양수 및 음수 기호)는 메서드에 암시적으로 또는 명시적으로 전달되는 개체의 System.Globalization.NumberFormatInfo 멤버에 Parse
의해 정의됩니다. 이 항목의 멤버 테이블은 각 개별 플래그에 대한 설명을 제공하고 속성과의 관계를 NumberFormatInfo 나타냅니다.
다음 표에서는 복합 숫자 스타일을 나열하고 포함된 개별 필드 플래그를 나타냅니다. 셀의 "1"은 복합 숫자 스타일에 해당 행의 개별 숫자 스타일이 포함되어 있음을 나타냅니다. "0"은 복합 숫자 스타일에 개별 숫자 스타일이 포함되지 않음을 나타냅니다.
모두 | 통화 | Float | 정수 | Number | HexNumber | BinaryNumber | |
---|---|---|---|---|---|---|---|
AllowBinarySpecifier(0x0400) | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
AllowHexSpecifier(0x0200) | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
AllowCurrencySymbol(0x0100) | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
AllowExponent(0x0080) | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
AllowThousands(0x0040) | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
AllowDecimalPoint(0x0020) | 1 | 1 | 1 | 0 | 1 | 0 | 0 |
AllowParentheses(0x0010) | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
AllowTrailingSign(0x0008) | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
AllowLeadingSign(0x0004) | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
AllowTrailingWhite(0x0002) | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
AllowLeadingWhite(0x0001) | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
(0x1ff) | (0x17f) | (0x0a7) | (0x007) | (0x06f) | (0x203) | (0x403) |
적용 대상
추가 정보
.NET