Índice de la sección dedicada a .NET (en el Guille) Cómo... en .NET

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

 

Código para Visual Basic.NET (VB.NET)

Código para C Sharp (C#)

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.

 


 

Código para Visual Basic.NET (VB.NET)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.CurrencyDecimalSeparator
    Label1.Text = "El separador decimal es: '" & s & "'"
    
    s = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyGroupSeparator
    Label2.Text = "El separador de miles es: '" & s & "'"
    
End Sub

 

 

Código para C Sharp (C#)El código para C#:

private void Form1_Load(System.Object sender, System.EventArgs e) {
    string s;

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

    s = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyGroupSeparator;
    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.


Ir al índice principal de el Guille