You are on page 1of 4

C Sharp Averiguar el separador decimal Y

el de miles y más cosas mediante


CurrentCulture.NumberFormat
Publicado el 04/Abr/2006
Actualizado el 05/Ago/2006
Autor: Guillermo 'guille' Som

Mediante la clase CultureInfo podemos averiguar muchas cosas particulares a la cultura


actual, entre ellas el separador decimal y el de miles, todo ello por medio de
CurrentCulture.NumberFormat.
Aquí te explico cómo averiguar el formato de la fecha/hora según la cultura actual.

Introducción:

Por medio de las clases incluidas en System.Globalization.CultureInfo podemos


averiguar muchas cosas relacionadas con la cultura o idioma del usuario en el que se está
usando nuestra aplicación, ya sea una aplicación de Windows o una aplicación ASP.NET,
además todo lo aquí explicado es válido para cualquier versión de .NET, y como de
costumbre, los ejemplos te los muestro tanto para Visual Basic como para C#, para que
nadie se quede fuera, je, je.

El código de ejemplo:

El código que vamos a usar es muy simple.


Creamos un nuevo proyecto en Visual Basic o C#, según nuestras preferencias, añadimos
dos controles Label y hacemos dobleclick en el formulario de forma que se cree
automáticamente el evento Load, en el que escribiremos el código mostrado más abajo
según el lenguaje.

En el código usado para averiguar el separador decimal (y el de miles) usamos la propiedad


NumberFormat de la propiedad compartida CurrentCulture de la clase CultureInfo, y
ese método devuelve un objeto del tipo NumberFormatInfo que tiene las siguientes
propiedades:

Propiedad Descripción
CurrencyDecimalDigits Indica el número de posiciones decimales que se van a utilizar en valores de
moneda.
CurrencyDecimalSeparator Obtiene o establece la cadena que se va a utilizar como separador decimal en
valores de moneda.
CurrencyGroupSeparator Obtiene o establece la cadena que separa grupos de dígitos a la izquierda de
la coma decimal en valores de moneda.
CurrencyGroupSizes Obtiene o establece el número de dígitos en cada grupo a la izquierda de la
coma decimal en valores de moneda.
CurrencyNegativePattern Obtiene o establece el modelo de formato para los valores de moneda
negativos.
CurrencyPositivePattern Obtiene o establece el modelo de formato para los valores de moneda
positivos.
CurrencySymbol Obtiene o establece la cadena que se va a utilizar como símbolo de moneda.
CurrentInfo Obtiene un NumberFormatInfo de sólo lectura que aplica formato a los
valores basándose en la referencia cultural actual.
DigitSubstitution Obtiene o establece un valor que especifica cómo la interfaz gráfica de
usuario muestra la forma de un dígito.
InvariantInfo Obtiene la NumberFormatInfo predeterminada de sólo lectura que es
independiente de la referencia cultural (invariable).
IsReadOnly Obtiene un valor que indica si NumberFormatInfo es de sólo lectura.
NaNSymbol Obtiene o establece la cadena que representa el valor NaN (no un número) de
IEEE.
NativeDigits Obtiene o establece una matriz de cadenas de dígitos nativos equivalentes a
los dígitos occidentales del 0 al 9.
NegativeInfinitySymbol Obtiene o establece la cadena que representa un infinito negativo.
NegativeSign Obtiene o establece la cadena que denota que el número asociado es negativo.
NumberDecimalDigits Obtiene o establece el número de posiciones decimales que se van a utilizar
en valores numéricos.
NumberDecimalSeparator Obtiene o establece la cadena que se va a utilizar como separador decimal en
valores numéricos.
NumberGroupSeparator Obtiene o establece la cadena que separa grupos de dígitos a la izquierda de
la coma decimal en valores numéricos.
NumberGroupSizes Obtiene o establece el número de dígitos en cada grupo a la izquierda de la
coma decimal en valores numéricos.
NumberNegativePattern Obtiene o establece el modelo de formato para los valores numéricos
negativos.
PercentDecimalDigits Obtiene o establece el número de posiciones decimales que se van a utilizar
en valores de porcentaje.
PercentDecimalSeparator Obtiene o establece la cadena que se van a utilizar como separador decimal
en valores de porcentaje.
PercentGroupSeparator Obtiene o establece la cadena que separa grupos de dígitos a la izquierda de
la coma decimal en valores de porcentaje.
PercentGroupSizes Obtiene o establece el número de dígitos en cada grupo a la izquierda de la
coma decimal en valores de porcentaje.
PercentNegativePattern Obtiene o establece el modelo de formato para los valores de porcentaje
negativos.
PercentPositivePattern Obtiene o establece el modelo de formato para los valores de porcentaje
positivos.
PercentSymbol Obtiene o establece la cadena que se va a utilizar como símbolo de
porcentaje.
PerMilleSymbol Obtiene o establece la cadena que se va a utilizar como símbolo de por mil.
PositiveInfinitySymbol Obtiene o establece la cadena que representa un infinito positivo.
PositiveSign Obtiene o establece la cadena que denota que el número asociado es positivo.

Nota:
Esta es la tabla usada en la información de Visual Studio 2005, pero todas las propiedades
están disponibles también en las versiones anteriores.

El código para VB .NET:


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim s As String

s =
System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyDeci
malSeparator
Label1.Text = "El separador decimal es: '" & s & "'"

s =
System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyGrou
pSeparator
Label2.Text = "El separador de miles es: '" & s & "'"

End Sub
El código para C#:
private void Form1_Load(System.Object sender, System.EventArgs e) {
string s;

s =
System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyDeci
malSeparator;
label1.Text = "El separador decimal es: '" + s + "'";

s =
System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyGrou
pSeparator;
label2.Text = "El separador de miles es: '" + s + "'";
}

Espacios de nombres usados:

System.Globalization

Versiones de .NET:

El código es válido para todas las versiones de Visual Basic y C# para .NET versiones 1.0,
1.1 y 2.0
En Compact .NET Framework es posible que algunas de las propiedades mostradas no sean
válidas, pero el código usado si es válido.

You might also like