2009-12-28 16 views
8

Ho un piccolo problema nel formattare i doppi valori nel mio codice XAML.Valore di formato in XAML con un separatore decimale?

double price = 10300.455; 

Questo numero deve essere visualizzato come 10,300.45 sui sistemi degli Stati Uniti e, come 10.300,45 sui sistemi tedeschi.

Finora sono riuscito a limitare i numeri con il seguente.

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

Ma il risultato è 10.300,45 e che non è quello che avevo in mente. Potrei sistemarlo facilmente usando un convertitore, ma non voglio farlo se c'è un altro modo per aggirare. Il Formatter proprio giusto andrebbe bene.

risposta

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

Prova N invece di F. N è il formato numerico, che in base a culture diverse, visualizza automaticamente la formattazione numerica. Guarda il codice di esempio sotto che è un'applicazione console. Tuttavia, se il binding utilizza la corretta cultura, otterrai il valore corretto. F2 è una notazione a virgola fissa.

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

Esiste un documento di riferimento per questi formati? –

Problemi correlati