Mat*_*nen 5 formatting localization currency
许多语言(如.NET语言和Java)都内置了货币格式化工具.他们所做的是使用特定于文化的数字格式格式化数字并添加文化的货币符号.
这里的问题是数字格式与货币符号强烈耦合.实际上,数字格式应该是周围文本语言的正确格式,而货币符号应该是所讨论的货币.例如,在德语文档中谈论美元时,您不会使用美国千位分隔符.
你能想到这种货币格式化功能的实际用途,还是只是为了打动以金钱为导向的管理人员?
至少在 .NET 中,数字格式与文化相关,而不是与符号相关。默认货币符号是与该文化相关的主要货币符号。可以根据需要覆盖该符号。
就像您的示例一样,如果我在字符串中嵌入货币值,那么我将使用字符串的区域性作为格式,但适当地覆盖货币符号。其余格式保持原样。
另一方面,如果我正在做一份报告,所有值都使用相同的区域性进行格式化。在这种情况下,我通常使用 ISO 3 字符代码而不是货币符号,特别是在涉及 2 种以上货币的情况下,以避免字体问题。
Ryan 对另一个问题的回答描述了 C# 中货币格式化的最佳实践是什么以及如何进行。