2009-07-30 28 views
5

¿Es cierto que String.Format funciona de 2 formas: si usamos el formato integrado como C, N, P ... ¿tendrá en cuenta la configuración regional? si usamos un código de formato personalizado como #, ## 0.000 NO tomará en cuenta la configuración regional?String.Format considere la configuración regional o no?

En mi código, utilice método como este

String.Format ("{0: ## # 0000.}", Valor);

porque mi país utilizan coma como separador decimal

pero el resultado sigue siendo: 1,234.500 como si se consideran punto como separador decimal.

Por favor ayuda!

+5

¿Alguna vez se ha molestado en consultar la documentación de String.Format? –

Respuesta

13

que desea utilizar CultureInfo:

value.ToString("N", new CultureInfo("vn-VN")); 

Usando String.Format:

String.Format(new CultureInfo("vi-VN"), "N", value); 

Ya que estás en Hanoi (de perfil), que utiliza el código de Vietnam, que es vn-VN.

2

Esto funciona.

IFormatProvider iFormatProvider = new System.Globalization.CultureInfo("es-ES"); 

string s = value.ToString("#,##0.000", iFormatProvider); 

string s2 = string.Format(iFormatProvider, "{0:#,##0.000}", val) 

Tenga en cuenta que la , y . están usando un estilo 'estándar' en-US, pero .ToString() y string.Format() con un proveedor de formato hace lo correcto.

Cuestiones relacionadas