System.Globalization.NumberStyles Enumeration

Determines the styles permitted in numeric string arguments that are passed to the Parse and TryParse methods of the integral and floating-point numeric types.

Syntax

[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
public enum NumberStyles

Remarks

The System.Globalization.NumberStyles enumeration consists of two kinds of enumeration values that are used to parse the string representations of numeric values:

Except for NumberStyles.AllowHexSpecifier, the individual field flags in the System.Globalization.NumberStyles enumeration define style elements that are used when parsing the string representation of a decimal number. NumberStyles.None indicates that only digits can be present in the parsed string. The remaining individual field flags define style elements that may be, but do not have to be, present in the string representation of a decimal number for the parse operation to succeed. In contrast, the NumberStyles.AllowHexSpecifier flag indicates that the string to be parsed is always interpreted as a hexadecimal value. The only individual field flags that can be used with NumberStyles.AllowHexSpecifier are NumberStyles.AllowLeadingWhite and NumberStyles.AllowTrailingWhite. The System.Globalization.NumberStyles enumeration includes a composite number style, NumberStyles.HexNumber, that consists of all three flags.

The symbols (such as the currency symbol, the group separator, the decimal separator, and the positive and negative signs) that can appear in the string to be parsed are defined by the members of the System.Globalization.NumberFormatInfo object that is passed either implicitly or explicitly to the Parse method. The members table in this topic provides a description of each individual flag and indicates its relationship to System.Globalization.NumberFormatInfo properties.

The following table lists the composite number styles and indicates which individual field flags they include. A "1" in a cell indicates that the composite number style includes the individual number style in that row. A "0" indicates that the composite number style does not include the individual number style.

AllowHexSpecifier (0x0200)

0

0

0

0

0

1

AllowCurrencySymbol (0x0100)

1

1

0

0

0

0

AllowExponent (0x0080)

1

0

1

0

0

0

AllowThousands (0x0040)

1

1

0

0

1

0

AllowDecimalPoint (0x0020)

1

1

1

0

1

0

AllowParentheses (0x0010)

1

1

0

0

0

0

AllowTrailingSign (0x0008)

1

1

0

0

1

0

AllowLeadingSign (0x0004)

1

1

1

1

1

0

AllowTrailingWhite (0x0002)

1

1

1

1

1

1

AllowLeadingWhite (0x0001)

1

1

1

1

1

1

(0x1ff)

(0x17f)

(0x0a7)

(0x007)

(0x06f)

(0x203)

Members

Member NameDescription
AllowCurrencySymbol

Indicates that the numeric string can contain a currency symbol. Valid currency symbols are determined by the NumberFormatInfo.CurrencySymbol property.

AllowDecimalPoint

Indicates that the numeric string can have a decimal point. If the System.Globalization.NumberStyles value includes the NumberStyles.AllowCurrencySymbol flag and the parsed string includes a currency symbol, the decimal separator character is determined by the NumberFormatInfo.CurrencyDecimalSeparator property. Otherwise, the decimal separator character is determined by the NumberFormatInfo.NumberDecimalSeparator property.

AllowExponent

Indicates that the numeric string can be in exponential notation. The NumberStyles.AllowExponent flag allows the parsed string to contain an exponent that begins with the "E" or "e" character and that is followed by an optional positive or negative sign and an integer. In other words, it successfully parses strings in the form nnnExx, nnnE+xx, and nnnE-xx. It does not allow a decimal separator or sign in the significand or mantissa; to allow these elements in the string to be parsed, use the NumberStyles.AllowDecimalPoint and NumberStyles.AllowLeadingSign flags, or use a composite style that includes these individual flags.

AllowHexSpecifier

Indicates that the numeric string represents a hexadecimal value. Valid hexadecimal values include the numeric digits 0-9 and the hexadecimal digits A-F and a-f. Strings that are parsed using this style cannot be prefixed with "0x" or "&h". A string that is parsed with the NumberStyles.AllowHexSpecifier style will always be interpreted as a hexadecimal value. The only flags that can be combined with NumberStyles.AllowHexSpecifier are NumberStyles.AllowLeadingWhite and NumberStyles.AllowTrailingWhite. The System.Globalization.NumberStyles enumeration includes a composite style, NumberStyles.HexNumber, that consists of these three flags.

AllowLeadingSign

Indicates that the numeric string can have a leading sign. Valid leading sign characters are determined by the NumberFormatInfo.PositiveSign and NumberFormatInfo.NegativeSign properties.

AllowLeadingWhite

Indicates that leading white-space characters can be present in the parsed string. Valid white-space characters have the Unicode values U+0009, U+000A, U+000B, U+000C, U+000D, and U+0020. Note that this is a subset of the characters for which the char.IsWhiteSpace(char) method returns true.

AllowParentheses

Indicates that the numeric string can have one pair of parentheses enclosing the number. The parentheses indicate that the string to be parsed represents a negative number.

AllowThousands

Indicates that the numeric string can have group separators, such as symbols that separate hundreds from thousands. If the System.Globalization.NumberStyles value includes the NumberStyles.AllowCurrencySymbol flag and the string to be parsed includes a currency symbol, the valid group separator character is determined by the NumberFormatInfo.CurrencyGroupSeparator property, and the number of digits in each group is determined by the NumberFormatInfo.CurrencyGroupSizes property. Otherwise, the valid group separator character is determined by the NumberFormatInfo.NumberGroupSeparator property, and the number of digits in each group is determined by the NumberFormatInfo.NumberGroupSizes property.

AllowTrailingSign

Indicates that the numeric string can have a trailing sign. Valid trailing sign characters are determined by the NumberFormatInfo.PositiveSign and NumberFormatInfo.NegativeSign properties.

AllowTrailingWhite

Indicates that trailing white-space characters can be present in the parsed string. Valid white-space characters have the Unicode values U+0009, U+000A, U+000B, U+000C, U+000D, and U+0020. Note that this is a subset of the characters for which the char.IsWhiteSpace(char) method returns true.

Any

Indicates that all styles except NumberStyles.AllowHexSpecifier are used. This is a composite number style.

Currency

Indicates that all styles except NumberStyles.AllowExponent and NumberStyles.AllowHexSpecifier are used. This is a composite number style.

Float

Indicates that the NumberStyles.AllowLeadingWhite, NumberStyles.AllowTrailingWhite, NumberStyles.AllowLeadingSign, NumberStyles.AllowDecimalPoint, and NumberStyles.AllowExponent styles are used. This is a composite number style.

HexNumber

Indicates that the NumberStyles.AllowLeadingWhite, NumberStyles.AllowTrailingWhite, and NumberStyles.AllowHexSpecifier styles are used. This is a composite number style.

Integer

Indicates that the NumberStyles.AllowLeadingWhite, NumberStyles.AllowTrailingWhite, and NumberStyles.AllowLeadingSign styles are used. This is a composite number style.

None

Indicates that no style elements, such as leading or trailing white space, thousands separators, or a decimal separator, can be present in the parsed string. The string to be parsed must consist of integral decimal digits only.

Number

Indicates that the NumberStyles.AllowLeadingWhite, NumberStyles.AllowTrailingWhite, NumberStyles.AllowLeadingSign, NumberStyles.AllowTrailingSign, NumberStyles.AllowDecimalPoint, and NumberStyles.AllowThousands styles are used. This is a composite number style.

Requirements

Namespace: System.Globalization
Assembly: mscorlib (in mscorlib.dll)
Assembly Versions: 1.0.5000.0, 2.0.0.0, 4.0.0.0