Это должна быть легкой задачей, но ...валюты форматирование
мне нужно форматировать валюту для отображения (строка) в 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) locale для формата и валюты, чтобы вы получили вещи, например, $ 1,123.56 - правильное использование и. но неправильный символ.
Double vietnamTotal = 1234.56;
CultureInfo ci = new CultureInfo(1066); // Vietnam
return vietnameTotal.ToString("c",ci));
Дал бы 1.234,56 ₫ - Правильный символ, неправильное использование и. для текущего пользователя.
Это сообщение gives more detail о том, что нужно делать, но не как это сделать.
Какой очевидный метод скрыт в структуре, я не хватает?
Почти Джон, спасибо, - однако он не получает позицию символа валюты правильной (например, во Вьетнаме или в Испании поместить символ валюты после значения) Можно утверждать, что позиция зависит от культуры пользователей (например, decimal separato r), но такие продукты, как Excel и SharePoint, занимают позицию, основанную на культуре валюты. – Ryan
Хорошо, исправление этого ... –
Готово - вы можете посмотреть другие свойства, связанные с валютой, хотя похоже, что вы не хотите изменять размер или символы группировки. –