gpt4 book ai didi

c# - 显示货币的差异

转载 作者:太空宇宙 更新时间:2023-11-03 12:35:35 26 4
gpt4 key购买 nike

在尝试使用货币值格式化字符串时,我注意到 WPF 显示它的方式有所不同。

XAML 中格式化decimal 值时,WPF 将其显示为5,99 €

<TextBlock Text="{Binding Total, StringFormat={}{0:C}}"/>
return 5.99m;

当我在代码隐藏中格式化时,它显示为 € 5,99

<TextBlock Text="{Binding TotalString}"/>
return string.Format("{0:C}", 5.99m);

这是一个错误吗?

我有 Windows 10,目标 .NET 版本是 4.5.2。

最佳答案

设置绑定(bind)的 StringFormat 时,WPF 不使用 CultureInfo.CurrentCulture,而是默认使用 en-US,或者您通过设置元素(或其父元素)的 Language 属性指定的值。参见 this question了解更多详情。

另一方面,string.Format 确实使用了 CultureInfo.CurrentCulture。用户可以配置它在格式化货币方面的确切行为。

例如,货币模式由注册表值 HKEY_CURRENT_USER\Control Panel\International\iCurrency 控制,可以在控制面板中设置(抱歉,这是德语):

enter image description here

因此,您可能只需更改该设置即可实现从 StringFormat 获得的格式化行为。

关于c# - 显示货币的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41201102/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com