Это должно быть простой проблемой, но ...
Мне нужно отформатировать валюту для отображения (строку) в C #
У рассматриваемой валюты будут свои собственные правила, такие как используемый символ, и должен ли этот символ стоять перед значением (например, 10 долларов США) или после (например, 10 ₫, что является вьетнамским донгом).
Но то, как форматируются числа, зависит от местных пользователей, а не от валюты.
E.g.
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 ₫ - правильный символ, неправильное использование и. для текущего пользователя.
В этом сообщении содержится более подробная информация О том, что нужно делать, а не о том, как это сделать.
Какой очевидный метод, скрытый во фреймворке, мне не хватает?