NumberStyles Enumeración

Definición

Determina los estilos permitidos en argumentos de cadena numéricos que se pasan a los métodos Parse y TryParse de los tipos numéricos enteros y de punto flotante.

Esta enumeración admite una combinación bit a bit de sus valores de miembro.

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
Herencia
NumberStyles
Atributos

Campos

AllowBinarySpecifier 1024

Indica que la cadena numérica representa un valor binario. Los valores binarios válidos incluyen los dígitos numéricos 0 y 1. Las cadenas que se analizan con este estilo no emplean un prefijo; 0b no se puede usar. Una cadena que se analiza con el AllowBinarySpecifier estilo siempre se interpretará como un valor binario. Las únicas marcas que se pueden combinar con AllowBinarySpecifier son AllowLeadingWhite y AllowTrailingWhite. La enumeración NumberStyles incluye un estilo compuesto, BinaryNumber, que consta de estas tres marcas.

AllowCurrencySymbol 256

Indica que la cadena numérica puede contener un símbolo de divisa. La propiedad CurrencySymbol determina los símbolos de divisa válidos.

AllowDecimalPoint 32

Indica que la cadena numérica puede tener una coma decimal. Si el valor NumberStyles incluye la marca AllowCurrencySymbol y la cadena analizada incluye un símbolo de divisa, la propiedad CurrencyDecimalSeparator determina el carácter del separador decimal. De lo contrario, el carácter separador decimal viene determinado por la propiedad NumberDecimalSeparator.

AllowExponent 128

Indica que la cadena numérica puede tener una notación exponencial. La marca AllowExponent permite a la cadena analizada contener un exponente que comienza con el carácter "E" o "e", un signo positivo opcional o negativo, y un entero Dicho de otra manera, analiza correctamente las cadenas con formato nnnExx, nnnE+xx y nnnE-xx. No permite un separador decimal o signo en el significado o mantisa; para permitir que se analicen estos elementos de la cadena, use las marcas AllowDecimalPoint y AllowLeadingSign o un estilo compuesto que incluya estas marcas individuales.

AllowHexSpecifier 512

Indica que la cadena numérica representa un valor hexadecimal. Los valores hexadecimales válidos incluyen los dígitos numéricos 0-9 y los dígitos hexadecimales A-F y a-f. Las cadenas que se analizan con este estilo no se pueden prefijar con "0x" o "&h". Una cadena que se analiza con el estilo AllowHexSpecifier siempre se interpretará como un valor hexadecimal. Las únicas marcas que se pueden combinar con AllowHexSpecifier son AllowLeadingWhite y AllowTrailingWhite. La enumeración NumberStyles incluye un estilo compuesto, HexNumber, que consta de estas tres marcas.

AllowLeadingSign 4

Indica que la cadena numérica puede tener un signo inicial. Los caracteres de signo inicial válidos se determinan mediante las propiedades PositiveSign y NegativeSign.

AllowLeadingWhite 1

Indica que la cadena analizada puede incluir caracteres de espacio en blanco iniciales. Los caracteres de espacio en blanco válidos tienen los valores Unicode U+0009, U+000A, U+000B, U+000C, U+000D y U+0020. Observe que este es un subconjunto de los caracteres para los que el método IsWhiteSpace(Char) devuelve true.

AllowParentheses 16

Indica que la cadena numérica puede tener una pareja de paréntesis para delimitar el número. Los paréntesis indican que la cadena que se va a analizar representa un número negativo.

AllowThousands 64

Indica que la cadena numérica puede tener separadores de grupo; como símbolos que separan las centenas de los millares. Si el NumberStyles valor incluye la AllowCurrencySymbol marca y la cadena que se va a analizar incluye un símbolo de moneda, el carácter separador de grupo válido viene determinado por la CurrencyGroupSeparator propiedad y el número de dígitos de cada grupo viene determinado por la CurrencyGroupSizes propiedad . De lo contrario, el carácter separador del grupo válido se determina con la propiedad NumberGroupSeparator y el número de dígitos de cada grupo se determina con la propiedad NumberGroupSizes.

AllowTrailingSign 8

Indica que la cadena numérica puede tener un signo final. Los caracteres de signo final válidos se determinan mediante las propiedades PositiveSign y NegativeSign.

AllowTrailingWhite 2

Indica que la cadena analizada puede incluir caracteres de espacio en blanco finales. Los caracteres de espacio en blanco válidos tienen los valores Unicode U+0009, U+000A, U+000B, U+000C, U+000D y U+0020. Observe que este es un subconjunto de los caracteres para los que el método IsWhiteSpace(Char) devuelve true.

Any 511

Indica que se utilizan todos los estilos, excepto AllowHexSpecifier. Este es un estilo de número compuesto.

BinaryNumber 1027

Indica que se utilizan los estilos AllowLeadingWhite, AllowTrailingWhite y AllowBinarySpecifier. Este es un estilo de número compuesto.

Currency 383

Indica que se utilizan todos los estilos, excepto AllowExponent y AllowHexSpecifier. Este es un estilo de número compuesto.

Float 167

Indica que se utilizan los estilos AllowLeadingWhite, AllowTrailingWhite, AllowLeadingSign, AllowDecimalPoint y AllowExponent. Este es un estilo de número compuesto.

HexNumber 515

Indica que se utilizan los estilos AllowLeadingWhite, AllowTrailingWhite y AllowHexSpecifier. Este es un estilo de número compuesto.

Integer 7

Indica que se utilizan los estilos AllowLeadingWhite, AllowTrailingWhite y AllowLeadingSign. Este es un estilo de número compuesto.

None 0

Indica que no se puede encontrar ningún elemento de estilo, como los espacios iniciales o en blanco, separadores de miles o un separador decimal, en la cadena analizada. La cadena que se va a analizar debe constar únicamente de dígitos decimales enteros.

Number 111

Indica que se utilizan los estilos AllowLeadingWhite, AllowTrailingWhite, AllowLeadingSign, AllowTrailingSign, AllowDecimalPoint y AllowThousands. Este es un estilo de número compuesto.

Ejemplos

En este ejemplo se muestra cómo analizar una cadena en un entero de 32 bits mediante varias NumberStyles marcas.

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

Comentarios

La NumberStyles enumeración consta de dos tipos de valores de enumeración que se usan para analizar las representaciones de cadena de valores numéricos:

  • Marcas de campo individuales, que definen elementos de estilo específicos (como espacios en blanco y separadores de grupo) que pueden estar presentes en la cadena analizada.

  • Estilos de número compuesto, que constan de varias marcas de campo que definen los elementos de estilo que pueden estar presentes en la cadena analizada.

Excepto por AllowHexSpecifier, las marcas de campo individuales de la NumberStyles enumeración definen los elementos de estilo que se usan al analizar la representación de cadena de un número decimal. None indica que solo los dígitos pueden estar presentes en la cadena analizada. Las marcas de campo individuales restantes definen elementos de estilo que pueden ser, pero no tienen que estar presentes en la representación de cadena de un número decimal para que la operación de análisis se realice correctamente. En cambio, la AllowHexSpecifier marca indica que la cadena que se va a analizar siempre se interpreta como un valor hexadecimal. Las únicas marcas de campo individuales que se pueden usar con AllowHexSpecifier son AllowLeadingWhite y AllowTrailingWhite. La NumberStyles enumeración incluye un estilo de número compuesto, HexNumber, que consta de las tres marcas.

Los símbolos (como el símbolo de moneda, el separador de grupo, el separador decimal y los signos positivos y negativos) que pueden aparecer en la cadena que se van a analizar se definen mediante los miembros del System.Globalization.NumberFormatInfo objeto que se pasan implícita o explícitamente al Parse método. La tabla members de este tema proporciona una descripción de cada marca individual e indica su relación con las NumberFormatInfo propiedades.

En la tabla siguiente se enumeran los estilos de número compuesto e indica qué marcas de campo individuales incluyen. Una "1" en una celda indica que el estilo de número compuesto incluye el estilo de número individual en esa fila. Un "0" indica que el estilo de número compuesto no incluye el estilo de número individual.

Any Moneda Float Entero 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)

Se aplica a

Consulte también