.NET中的货币格式

时间:2011-11-19 00:37:33

标签: c# formatting currency

我试图了解货币格式如何在.NET框架中运行。据我了解,Thread.CurrentCulture.NumberFormatInfo.CurrencySymbol包含本地文化的货币符号。

但正如我所看到的,在现实世界中,特定文化与货币符号之间并不存在明确的一对一关系。例如,我可能位于英国,但我用欧元计算我的发票。或者我可能住在冰岛,并以美元收到美国供应商的发票。或者我可能住在瑞典,但我的银行账户使用欧元。我意识到在某些情况下你可能只想假设本地货币是使用的货币,但通常情况并非如此。

在这些情况下,我是否会克隆CultureInfo并在克隆上手动设置货币符号,然后在格式化金额时使用克隆?即使货币符号无效,我认为使用NumberFormatInfo的其他属性仍然有意义,例如CurrencyDecimalSeparator。

1 个答案:

答案 0 :(得分:6)

绝对。我使用基于a blog post by Matt Weber的技术完成了它。这是一个使用您的文化格式的货币(小数位等)的示例,但使用适合给定货币代码的货币符号和小数位数(因此,en-US文化中的100万日元将被格式化为{ {1}})。

当然,您可以对其进行修改,以选择保留当前文化和货币文化的哪些属性。

¥1,000,000