如何在XAML中使用小数分隔符格式化数值?

9

我在XAML代码中遇到了一个小问题,涉及到双精度数值的格式化。

double price = 10300.455;

这个数字在美国系统上应该显示为10,300.45,在德国系统上应该显示为10.300,45

到目前为止,我已经通过以下方法限制了数字。

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

但结果是10300.45,这不是我想要的。我可以使用转换器轻松解决这个问题,但如果有另一种方法的话,我不想这样做。只需要正确的格式化程序就行了。

3个回答

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

尝试使用N代替FN是数字格式,基于不同的文化,自动显示数字格式。看下面的示例代码,它是一个控制台应用程序。然而,如果绑定使用正确的文化,您将获得正确的值。F2是固定点表示法。

    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

5

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接