2009-12-28 74 views
8

Tengo un pequeño problema formateando valores dobles en mi código XAML.¿Valor de formato en XAML con un separador decimal?

double price = 10300.455; 

Este número debe mostrarse como 10,300.45 en los sistemas de los Estados Unidos y como 10.300,45 en los sistemas alemanes.

Hasta ahora logré limitar los números con lo siguiente.

Binding="{Binding price, StringFormat=F2}" 

Pero el resultado es 10.300,45 y eso no es lo que tenía en mente. Podría arreglar esto fácilmente usando un convertidor, pero no quiero hacer eso si hay otro camino. Justo el formateador correcto estaría bien.

Respuesta

21
Binding="{Binding price, StringFormat=N2}" 

Trate N en lugar de F. N es el formato de número, que en función de culturas diferentes, muestra automáticamente el formato de número. Mire el siguiente código de muestra que es una aplicación de consola. Sin embargo, si el enlace utiliza una cultura correcta, obtendrá el valor correcto. F2 es la notación de punto fijo.

double price = 10300.455; 

    Console.WriteLine(price.ToString("N2", 
     CultureInfo.CreateSpecificCulture("de-DE"))); 
    // displays 10.300,46 

    Console.WriteLine(price.ToString("N2", 
     CultureInfo.CreateSpecificCulture("en-US"))); 
    // displays 10,300.46 
+2

¿Hay documentos de consulta para estos formatos? –

Cuestiones relacionadas