Это должна быть простая проблема, но...
Мне нужно форматировать валюту для отображения (строки) в С#
Соответствующая валюта будет иметь свои собственные правила, такие как используемый символ, и если этот символ должен быть до значения (например, 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 ₫ - Правильный символ, неправильное использование и. для текущего пользователя.
Этот пост дает больше подробностей о том, что нужно делать, но не о том, как это сделать.
Какой очевидный метод скрыт в структуре, я не хватает?