这应该是一个简单的问题,但是......
我需要在 C# 中格式化显示(字符串)的货币
所讨论的货币将有自己的规则,例如要使用的符号以及该符号是应该出现在价值之前(例如 10 美元)还是之后(例如 10 ₫ 这是越南盾)。
但是数字的格式取决于本地用户,而不是货币。
例如
1.234,56 ₫ should be displayed to a user in Vietnam but
1,234.56 ₫ should be displayed to a user in the US
(格式化为代码,很容易看出 和 之间的区别。)
所以像这样的代码
Double vietnamTotal = 1234.56;
return vietnamTotal.ToString("c");
不起作用,因为它将使用用户(或更准确地说是 CultureInfo.CurrentCulture)语言环境来设置格式和货币,因此您会得到 1,123.56 美元之类的东西 - 正确使用 , 和 . 但错误的符号。
Double vietnamTotal = 1234.56;
CultureInfo ci = new CultureInfo(1066); // Vietnam
return vietnameTotal.ToString("c",ci));
将给出 1.234,56 ₫ - 正确符号,错误使用 , 和 . 对于当前用户。
这篇文章提供了更多关于正确做事的细节,但没有给出如何去做。
我缺少什么隐藏在框架中的明显方法?