2012-02-06 9 views
34

Tengo un nuevo objeto XmlDocument, p. xml se crea durante mi programa ...Configurar punto en lugar de coma en valores numéricos

Quiero que todos los valores numéricos en el XML creado tengan el símbolo de punto en lugar de la coma de manera predeterminada.

¿Puedo hacer algo para declararlo una vez, no para analizar cada valor decimal?

I.e. Para configurar este punto en lugar de coma en algún lugar al principio y no te preocupes por esto hasta el final?

+0

Si quieren un punto decimal en XML pero desea utilizar un número decimal coma al mostrar valores a los usuarios, tendrá que especificarlo en el acto. No hay configuración "use dot only in xml". –

Respuesta

73

Prueba esto:

System.Globalization.CultureInfo customCulture = (System.Globalization.CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone(); 
customCulture.NumberFormat.NumberDecimalSeparator = "."; 

System.Threading.Thread.CurrentThread.CurrentCulture = customCulture; 
+0

¡Gracias! Esto también me ayudó –

+0

Gracias. Yo también estaba buscando esto ... – Divya

+1

¿Por qué no asignar directamente NumberDecimalSeperator en CurrentCulture? – Brent

7

Utilice Decimal.ToString(..) con System.Globalization.CultureInfo.InvariantCulture como un parámetro aplicado.

o si desea hacerlo globaly, utilice

CurrentCulture para establecer siempre Invariant uno, mediante el uso de Applicaton.CurrentCulture propiedad.

+0

Configuración de Application.CurrentCulture no funcionó para mí. – Ted

17

Puede usar value.ToString(CultureInfo.InvariantCulture) para convertir sus valores numéricos en cadenas. O bien, a nivel mundial puede cambiar la cultura actual a una cultura que utiliza el punto como separador decimal:

Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-US"); 
+0

'value.ToString (CultureInfo.InvariantCulture)' actualmente no funciona: https://msdn.microsoft.com/en-us/library/29dxe1x2(v=vs.100).aspx – Jonas

+1

@Jonas, el enlace que señaló to trata de 'String.ToString (IFormatProvider)'. La parte sobre cómo este parámetro está "reservado" no se aplica a otros tipos, solo String –

+1

En mi versión (.NET 4.5) es 'CultureInfo.GetCultureInfo (" en-US ")'. Funciona perfectamente. – itmuckel

Cuestiones relacionadas