número formateado puede ser manejado por usted por el marco, si se utiliza la correcta culture al manipular el número.
Console.WriteLine(4.3);
Console.WriteLine(4.3.ToString(CultureInfo.GetCultureInfo("fr-fr")));
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("fr-fr");
Console.WriteLine(4.3);
Si desea hacer una "única vez", el segundo enfoque funcionará. Si desea mostrar cada número correctamente, realmente debería establecer el current thread's culture. De esta forma, cualquier manipulación de números manejará separadores decimales, agrupando caracteres y cualquier otra cosa cultural específica correctamente.
Lo mismo ocurre con los números de análisis. Si un usuario ingresa 1,234
, ¿cómo sabe si ha ingresado 1.234
(la coma es el separador decimal) o 1234
(la coma es un separador de agrupación)? Aquí es donde la cultura ayuda a cabo, ya que sabe cómo mostrar los números y también puede ser utilizado para analizar correctamente:
Console.WriteLine(double.Parse("1,234"));
Console.WriteLine(double.Parse("1,234", CultureInfo.GetCultureInfo("fr-fr")));
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("fr-fr");
Console.WriteLine(double.Parse("1,234"));
La voluntad por encima de la salida 1234
(la coma es un separador decimal en mi es-cultura por defecto), 1.234
(la coma es un separador decimal en francés) y 1,234
(de nuevo, la coma es un separador decimal en francés, y también la cultura del hilo está configurada en francés, por lo que se muestra usando esta cultura; de ahí la coma como separador decimal en la salida).
también se ocupará de miles, que también se hacen diferentes. – dove
Pero tiene la desventaja de que debe insertar manualmente la información de cultivo en TODOS los campos ToString, String.Format, Number.Parse y similar en su código. – Foxfire
Ayuda para un caso específico, pero no permite especificar el punto decimal. –