NumberStyles Enumeration

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Updated: May 2010

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

This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.

Namespace:  System.Globalization
Assembly:  mscorlib (in mscorlib.dll)

Syntax

'Declaration
<ComVisibleAttribute(True)> _
<FlagsAttribute> _
Public Enumeration NumberStyles
[ComVisibleAttribute(true)]
[FlagsAttribute]
public enum NumberStyles

Members

Member name Description
Supported by Silverlight for Windows PhoneSupported by Xbox 360 None Indicates that no style elements, such as leading or trailing white space, thousand separators, or a decimal separator, can be present in the parsed string. The string to be parsed must consist of integral decimal digits only.
Supported by Silverlight for Windows PhoneSupported by Xbox 360 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 IsWhiteSpace method returns true.
Supported by Silverlight for Windows PhoneSupported by Xbox 360 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 IsWhiteSpace method returns true.
Supported by Silverlight for Windows PhoneSupported by Xbox 360 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.
Supported by Silverlight for Windows PhoneSupported by Xbox 360 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.
Supported by Silverlight for Windows PhoneSupported by Xbox 360 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.
Supported by Silverlight for Windows PhoneSupported by Xbox 360 AllowDecimalPoint Indicates that the numeric string can have a decimal point. If the NumberStyles value includes the AllowCurrencySymbol flag and the parsed string includes a currency symbol, the decimal separator character is determined by the Valid decimal point characters are determined by the NumberFormatInfo.CurrencyDecimalSeparator property. Otherwise, the decimal separator character is determined by the NumberFormatInfo.NumberDecimalSeparator property.
Supported by Silverlight for Windows PhoneSupported by Xbox 360 AllowThousands Indicates that the numeric string can have group separators, such as symbols that separate hundreds from thousands. If the NumberStyles value includes the 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.
Supported by Silverlight for Windows PhoneSupported by Xbox 360 AllowExponent Indicates that the numeric string can be in exponential notation. The 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 string 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 AllowDecimalPoint and AllowLeadingSign flags, or use a composite style that includes these individual flags.
Supported by Silverlight for Windows PhoneSupported by Xbox 360 AllowCurrencySymbol Indicates that the numeric string can contain a currency symbol. Valid currency symbols are determined by the NumberFormatInfo.CurrencySymbol property.
Supported by Silverlight for Windows PhoneSupported by Xbox 360 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 AllowHexSpecifier style will always be interpreted as a hexadecimal value. The only flags that can be combined with AllowHexSpecifier are AllowLeadingWhite and AllowTrailingWhite. The NumberStyles enumeration includes a composite style, HexNumber, that consists of these three flags.
Supported by Silverlight for Windows PhoneSupported by Xbox 360 Integer Indicates that the AllowLeadingWhite, AllowTrailingWhite, and AllowLeadingSign styles are used. This is a composite number style.
Supported by Silverlight for Windows PhoneSupported by Xbox 360 HexNumber Indicates that the AllowLeadingWhite, AllowTrailingWhite, and AllowHexSpecifier styles are used. This is a composite number style.
Supported by Silverlight for Windows PhoneSupported by Xbox 360 Number Indicates that the AllowLeadingWhite, AllowTrailingWhite, AllowLeadingSign, AllowTrailingSign, AllowDecimalPoint, and AllowThousands styles are used. This is a composite number style.
Supported by Silverlight for Windows PhoneSupported by Xbox 360 Float Indicates that the AllowLeadingWhite, AllowTrailingWhite, AllowLeadingSign, AllowDecimalPoint, and AllowExponent styles are used. This is a composite number style.
Supported by Silverlight for Windows PhoneSupported by Xbox 360 Currency Indicates that all styles except AllowExponent and AllowHexSpecifier are used. This is a composite number style.
Supported by Silverlight for Windows PhoneSupported by Xbox 360 Any Indicates that all styles except AllowHexSpecifier are used. This is a composite number style.

Remarks

The NumberStyles enumeration consists of two kinds of enumeration values htat are used to parse the string representations of numeric values:

  • Individual field flags, which define specific style elements (such as white space and group separators) that can be present in the parsed string.

  • Composite number styles, which consists of multiple flag fields that define the style elements that can be present in the parsed string.

Except for AllowHexSpecifier, the individual field flags in the NumberStyles enumeration define style elements that are used when parsing the string representation of a decimal number. 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 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 AllowHexSpecifier are AllowLeadingWhite and AllowTrailingWhite. The NumberStyles enumeration includes a composite number style, 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 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 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.

Any

Currency

Float

Integer

Number

HexNumber

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

The AllowExponent style is used for numeric strings in one of the following forms:

[-] m. dddddd E+ xx

[-] m. dddddd E- xx

[-] m. dddddd e+ xx

[-] m. dddddd e- xx

One or more nonzero digits (m) precede the decimal separator ("."). A minus sign ("-") can precede m. The Type performing the conversion determines the number of decimal places (dddddd) in the string, and maximum and minimum values for xx and m. The exponent (+ / - xx) consists of either a plus or minus sign followed by at least one digit.

Examples

This example shows how to parse a string into a 32-bit integer using various NumberStyles flags.

Imports System.Globalization
Imports System.Text

Public Module Example
   Public Sub Demo(outputBlock As System.Windows.Controls.TextBlock) 
      ' 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)
      outputBlock.Text += String.Format("{0} in hex = {1} in decimal.", num, val) + vbCrLf

      ' 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)
      outputBlock.Text += String.Format("'{0}' parsed to an integer is '{1}'.", 
                                        num, val) + vbCrLf

      ' 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)
      outputBlock.Text += String.Format("'{0}' parsed to an integer is '{1}'.", 
                                        num, val) + vbCrLf
   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'.
using System;
using System.Text;
using System.Globalization;

public sealed class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      // Parse the string as a hex value and display the value as a decimal.
      String num = "A";
      int val = int.Parse(num, NumberStyles.HexNumber);
      outputBlock.Text += String.Format("{0} in hex = {1} in decimal.", num, val) + "\n";

      // 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);
      outputBlock.Text += String.Format("'{0}' parsed to an int is '{1}'.", num, val) + "\n";

      // 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);
      outputBlock.Text += String.Format("'{0}' parsed to an int is '{1}'.", num, val) + "\n";
   }
}

// 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'.

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Change History

Date

History

Reason

May 2010

Revised extensively.

Customer feedback.