2009-12-28 6 views
8

J'ai un petit problème à mettre en double valeur dans mon code XAML.Valeur de format en XAML avec un séparateur décimal?

double price = 10300.455; 

Ce numéro doit être affiché comme 10,300.45 sur les systèmes américains et comme 10.300,45 sur les systèmes allemands.

Jusqu'ici j'ai réussi à limiter les nombres avec ce qui suit.

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

Mais le résultat est 10300,45 et qui n'est pas ce que j'avais à l'esprit. Je pourrais régler cela facilement en utilisant un convertisseur, mais je ne veux pas le faire s'il y a une autre solution. Juste le bon formateur serait bien.

Répondre

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

Essayez N au lieu de F. N est le format numérique qui, basé sur différentes cultures, affiche automatiquement le formatage des nombres. Regardez l'exemple de code ci-dessous qui est une application console. Cependant, si la liaison utilise une culture correcte, vous obtiendrez la valeur correcte. F2 est une notation à virgule fixe.

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

Y at-il doc de référence pour ces formats? –

Questions connexes