separador punto miles decimales con c# .net string double decimal

c# - miles - Conversión de doble a cadena con N decimales, punto como separador decimal y sin separador de mil



separador de miles y decimales c# (6)

Necesito convertir un decimal a una cadena con N decimales (dos o cuatro) y NO mil separador:

''XXXXXXX (punto) DDDDD''

El problema con CultureInfo.InvariantCulture es que son lugares '','' para separar miles.

ACTUALIZAR

Esto debería funcionar para tipos decimales y dobles.

Mi pregunta anterior: Necesita convertir doble o decimal en cadena



Es realmente fácil especificar su propio separador decimal. Me tomó alrededor de 2 horas averiguarlo: D. Ves que estabas usando la cultura actual u otra que especifiques ¿no? Bueno, lo único que el analizador necesita es un Proveedor IFormat. Si le da el CultureInfo.CurrentCulture.NumberFormat como formateador, formateará el doble de acuerdo con el NumberDecimalSeparator su cultura actual. Lo que hice fue crear una nueva instancia de la clase NumberFormatInfo y establecer su propiedad NumberDecimalSeparator en cualquier cadena de separación que quisiera. Complete el código a continuación:

double value = 2.3d; NumberFormatInfo nfi = new NumberFormatInfo(); nfi.NumberDecimalSeparator = "-"; string x = value.ToString(nfi);

¿El resultado? "2-3"


Para un decimal , use el método ToString y especifique el cultivo Invariant para obtener un punto como separador decimal:

value.ToString("0.00", System.Globalization.CultureInfo.InvariantCulture)

El tipo long es un número entero, por lo que no hay parte de fracción. Simplemente puede formatearlo en una cadena y agregar algunos ceros después:

value.ToString() + ".00"


Prefiero usar ToString() e IFormatProvider .

double value = 100000.3 Console.WriteLine(value.ToString("0,0.00", new CultureInfo("en-US", false)));

Salida: 10,000.30


Simplemente puede usar decimal.ToString ()

Por dos decimales

myDecimal.ToString("0.00");

Por cuatro decimales

myDecimal.ToString("0.0000");

Esto le da un punto como separador decimal y ningún separador de mil sin importar la cultura.


double value = 3.14159D; string v = value.ToString().Replace(",", "."); Console.WriteLine(v);

Salida: 3.14159