Índice
1. Introducción2. Palabras Clave
3. Enumeración NumberStyles
4. Ejemplos de Uso Básicos
5. Conclusiones
6. Literatura & Enlaces
1. Introducción
Segunda parte de la serie Cadenas de Caracteres de Formato Estándar y Flags de Parseo en C#. Aquí se describe la utilidad de la enumeración NumberStyles: ésta proporciona valores para determinar cómo se debe llevar a cabo la conversión de cadenas de caracteres a valores numéricos. Se proporciona al final algunos ejemplos para concretar su comprensión.
2. Palabras Clave
- Conversión
- Enumeración
- Flag
- Tipo de dato
- Valor numérico
3. Enumeración NumberStyles
La numeración System.Globalization.NumberStyles ("NumberStyles Enumeration", 2016) determina cómo debe llevarse cabo la conversión de objetos string a valores de tipos de datos numéricos -enteros y punto flotantes. Actúa sobre los métodos static Parse y TryParse.
Los miembros constantes definidos en esta enumeración son:
- AllowLeadingWhite,
- AllowLeadingSign,
- AllowParentheses,
- AllowThousands,
- AllowCurrencySymbol,
- AllowTrailingWhite,
- AllowTrailingSign,
- AllowDecimalPoint,
- AllowExponent,
- AllowHexSpecifier
Otros miembros interesantes corresponden con la combinación (composición) [Enumeraciones en C# - Parte 3] de los valores ya enumerados:
- None,
- Integer,
- Float,
- Number,
- HexNumber,
- Currency,
- Any
En el caso de Float esta composición es igual a ("NumberStyles Enumeration", 2016):
Float = AllowLeadingWhite | AllowTrailingWhite | AllowLeadingSign | AllowDecimalPoint | AllowExponent;
En Figura 1 se describen todas las composiciones anteriores (Albahari, 2012):
Figura 1. Flags compuestos de NumberStyles (Albahari, 2012). |
Por otra parte, en el momento de invocar al método Parse sin especificar ningún valor de esta enumeración, los valores por defecto descritos en la Figura 2 se aplican:
Figura 2. Predeterminados de NumberStyles (Albahari 2012). |
4. Ejemplos de Uso Básicos
El programador puede optar por especificar uno de los valores de la enumeración NumberStyles como argumento del método Parse:
int mil = int.Parse("3E8", NumberStyles.HexNumber); // Valor hexadecimal 3E8 en entero: 1000
int menosDos = int.Parse("(2)", NumberStyles.Integer | NumberStyles.AllowParentheses); // -2
double unMillon = double.Parse("1,000,000", NumberStyles.Any); // 1000000
decimal tresMillones = decimal.Parse("3e6", NumberStyles.Any); // 3000000
decimal cintoPuntoDos = decimal.Parse("$5.2", NumberStyles.Currency); // 5.2
En todos estos ejemplos no se especificó ningún proveedor de formato; se utiliza la configuración cultural y regional actuales del sistema para el símbolo de la moneda, el separador de grupo, el punto decimal, etc.
Ahora en este ejemplo el programador puede observar cómo se especifica el proveedor de formato NumberFormatInfo (Formato y Parseo en C#/2: Parseo y Proveedores de Formato) para establecer el símbolo de moneda ₠ para el euro y el carácter de espacio " " como separador de grupos:
NumberFormatInfo nfi = new NumberFormatInfo();
nfi.CurrencySymbol = "₠";
nfi.CurrencyGroupSeparator = " ";
double unMillon = double.Parse("₠1 000 000", NumberStyles.Currency, nfi);
5. Conclusiones
Se estudió y se comprendió cómo la enumeración NumberStyles permite controlar el proceso de conversión de valores numéricos a partir de un objeto string.
La tercera de esta parte demostrará el uso de cadenas de formato para fechas.
6. Literatura & Enlaces
Albahari, J., Albahari, B. (2012). C# 5.0 in a Nutshell. United States: O'Reilly Media.NumberStyles Enumeration (System.Globalization) (2016, julio 17). Recuperado desde: https://msdn.microsoft.com/en-us/library/System.Globalization.NumberStyles.aspx
Enumeraciones en C# (2016, julio 17). Recuperado desde: https://ortizol.blogspot.com.co/2014/05/enumeraciones-en-c-parte-3.html
Formato y Parseo en C#/2: Parseo y Proveedores de Formato (2016, julio 17). Recuperado desde: https://ortizol.blogspot.com.co/2016/07/formato-y-parseo-en-csharp-parte-2-2-parseo-y-proveedores-de-formato.html
O
No hay comentarios:
Publicar un comentario
Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.