我在 XAML 代码中格式化 double 值时遇到了一点问题。
double price = 10300.455;
此数字在美国系统上应显示为 10,300.45,在德国系统上应显示为 10.300,45。
到目前为止,我设法通过以下方式限制了数字。
Binding="{Binding price, StringFormat=F2}"
但结果是 10300.45,这不是我的想法。我可以使用转换器轻松解决此问题,但如果有其他方法,我不想这样做。恰到好处的格式化程序就可以了。
Binding="{Binding price, StringFormat=N2}"
尝试 N
而不是 F
。 N
为数字格式,根据不同的文化,自动显示数字格式。查看下面的示例代码,它是一个控制台应用程序。但是,如果绑定(bind)使用正确的区域性,您将获得正确的值。 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
我是一名优秀的程序员,十分优秀!