Formatear un decimal de forma dinámica
Artículo por Club Developers · 28 agosto 2006
2794 vistas
En primer, lugar hay que saber que el decimal tiene un lÃmite, sólo puede mostrar 28 dígitos significativos. Más allá, la cifra se redondeará a este lÃmite.
En segundo lugar, el uso del método sobrecargado ToString() tiene un parámetro format (por ejemplo aquà de tipo "N") fijo. Esto es fastidioso cuando no podemos anticipar el número de cifras después de la coma.
Aquà proponemos la implementación de un método que permite determinar el formato N de forma dinámica. Por lo tanto, mostraremos el uso de la clase NumberFormatInfo.
En segundo lugar, el uso del método sobrecargado ToString() tiene un parámetro format (por ejemplo aquà de tipo "N") fijo. Esto es fastidioso cuando no podemos anticipar el número de cifras después de la coma.
Aquà proponemos la implementación de un método que permite determinar el formato N de forma dinámica. Por lo tanto, mostraremos el uso de la clase NumberFormatInfo.
csharp
using System.Globalization; //... private static string SetFormat(Decimal d, NumberFormatInfo nfi) { string format = "N"; string sep; sep = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator; try  {   string s = d.ToString();   int i = s.IndexOf(sep);   if(i >= 0){format += (s.Length - i - 1).ToString();}   else{format += 0.ToString();}   } catch(Exception ex)  { Console.WriteLine(ex.Message);} return d.ToString(format,nfi); }