2009-02-06 9 views
10

casi tengo el mismo problema que el hombre en este tema:C# dobles mostrar coma en lugar del período

Convert Float that has period instead of comma?

Así que mi

double x = 234.4; 
string y = x.ToString(); 

consigo y == "234,4";

Peor aún ... Double.Parse("234.4") arroja una excepción.

He escrito un montón de código antes de que me pidieran utilizar el período en lugar de la coma, por lo que preferiría tener alguna forma de cambiar mi CultureInfo a nivel mundial.

¿Hay algún ajuste en los proyectos que puedo hacer?

que he probado:

 Application.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US"); 
     Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US"); 
     Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US"); 

Ellos tipo de trabajo. Funcionan durante la mayor parte de la aplicación, pero todos los controles que residen en las pestañas de mi TabControl todavía quieren utilizar mis computadoras Localized CultureInfo.

¿Alguna idea sobre cómo solucionar esto?

+0

Normalmente, la configuración de CultureInfo en el hilo debería ser suficiente. ¿Tal vez está ejecutando el código que establece el cultureinfo en otro hilo que el interfaz gráfica de usuario? –

+0

¡Huh! Ese fue realmente el caso. ¡Gracias! Pensé que configurar Application.CurrentCulture afectaría a todos los hilos. .... y lo hace, pero solo _si_ lo configuro antes de crear mi formulario por alguna razón. Lo había colocado debajo de la creación del formulario (pero antes de ejecutarlo). De todos modos, caso cerrado! ¡Gracias de nuevo! – Presidenten

Respuesta

4

Gracias al comentario Florin Sabaus he encontrado la solución, que era colocar

 Application.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US"); 

en main() justo antes de crear mi forma.

Ahora no tendré que cambiar todas mis .ToString() y Double.Parse() :-) ¡Yey!

10

Usted podría tratar de usar

double.Parse("...", CultureInfo.InvariantCulture) 

y

x.ToString(CultureInfo.InvariantCulture) 

en las partes del programa que son positivos es necesario tener tiempo decimal en lugar de comas u otros ajustes regionales dependientes separador decimal .

Espero que ayude.

Cuestiones relacionadas