Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

TRUCO: La manera correcta de averiguar el separador decimal y otros datos sobre números en .Net

formatodecimal

Aunque pueda parecer una tontería, seguramente te sorprenderías de saber la cantidad de proyectos que aparecen con fallos y excepciones no controladas por el mero hecho de no hacer bien la conversión de números, desde los valores que introduce un usuario al tipo de dato adecuado.

Así, muchos hacen caso omiso de los maravillosos métodos Parse o TryParse que todos los tipos numéricos nos ofrecen, y tratan de convertirlos usando sus propios sistemas. Este tipo de programación viene heredada de tiempos peores, antes de .NET, y hay que desterrarlas.

FormatoNumeroAl igual que pasa con los números también suele haber problemas con las fechas, aunque por suerte en este caso gracias a la existencia de selectores visuales de fecha los problemas se minimizan.

Hay una pregunta interesante que surge en muchas ocasiones en el ámbito de esta problemática y es ¿cómo podemos saber el formato de un número en la cultura actual del sistema de nuestro usuario?

Para responderlo hay métodos de todos los tipos: desde el que convierte en cadena el resultado de dividir dos números y extrae el primer carácter no numérico desde el final para averiguar el separador de decimales, hasta el que simplemente supone siempre que el separador va a ser una coma (sin contar con la gran diversidad del mundo). ¿Cuál es la mejor forma de averiguar estas cosas en .NET?

La clase NumberFormat tiene la respuesta. El siguiente código nos da la información que necesitamos:

using System.Globalization;

NumberFormatInfo nfi = System.Globalization.CultureInfo.CurrentCulture.NumberFormat;
string SeparadorDecimal = nfi.NumberDecimalSeparator;
string separadorDeMiles = nfi.NumberGroupSeparator;
string signoNegativo = nfi.NegativeSign;

Interesante y fácil ¿verdad?

Otro truco y más material para investigar: ¿cómo puedo averiguar los nombres de los días de la semana en la cultura actual? Solución: la clase DateTimeFormatInfo 

 DateTimeFormatInfo dtfi = System.Globalization.DateTimeFormatInfo.CurrentInfo;
string[] nombresDias = dtfi.DayNames;

Y tienes una bonita matriz con los días de la semana en el idioma que quieras, empezando por el Domingo.

¡Esperamos que te resulte útil!

campusMVP campusMVP es la mejor forma de aprender a programar online y en español. En nuestros cursos solamente encontrarás contenidos propios de alta calidad (teoría+vídeos+prácticas) creados y tutelados por los principales expertos del sector. Nosotros vamos mucho más allá de una simple colección de vídeos colgados en Internet porque nuestro principal objetivo es que tú aprendas. Ver todos los posts de campusMVP

Boletín campusMVP.es

Solo cosas útiles. Una vez al mes.

🚀 Únete a miles de desarrolladores

DATE DE ALTA

x No me interesa | x Ya soy suscriptor

La mejor formación online para desarrolladores como tú

Comentarios (1) -

Marco Julian
Marco Julian


Saludos desde México, les quiero decir que me encanto la guía de los 20 trucos
algunas cosas ya me las había topado pero con esta guía a quedado mas que claro,

Me interesa su curso para la certificación de Microsoft pero pues para mí es dinero que no tengo
y no dudo que este excelente el material.

Los felicito y gracias por su ayuda.

Responder

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.