The symbols to use for currency symbol, thousands separator, decimal point indicator, and leading sign are specified by NumberFormatInfo.
The AllowCurrencySymbol and AllowDecimalPoint values determine whether a Parse method treats an instance of a numeric type as a currency or as a number and, therefore, whether to use the currency properties or the number properties of the associated NumberFormatInfo. For example, if AllowCurrencySymbol is specified, a Parse method uses currency properties, such as CurrencyDecimalSeparator and CurrencyGroupSeparator. However, if AllowDecimalPoint is specified, the method uses number properties, such as NumberDecimalSeparator and NumberGroupSeparator.
The attributes of NumberStyles are set by using the bitwise inclusive OR of the field flags. The Most Significant Bit (MSB) is the leftmost bit.
In the following table, the rows are the number styles with individual field flags and the columns are the composite number styles that combine individual field flags.
Under the composite number styles, a "1" means that the composite number style includes the individual number style in that row; a "0" means the composite number style does not include the individual number style in that row.
The hexadecimal representation of the composite number styles are listed in the last row of the table.
| | 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 |
| | (0x1ff) | (0x17f) | (0x0a7) | (0x007) | (0x06f) | (0x203) |
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.