Строка формата валюты в asp.net - PullRequest
7 голосов
/ 17 апреля 2009

Я использую сетку Infragistics и мне нужно отформатировать строку валюты. Для этого мне нужна строка, содержащая шаблон, такой как «$ ### ###, 00», и я хотел бы, чтобы это вышло из моего текущего CultureInfo. Как я могу это сделать? Нужно ли составлять его вручную из информации в:

CultureInfo.CreateSpecificCulture(myLanguageId).NumberFormat.CurrencyGroupSeparator
CultureInfo.CreateSpecificCulture(myLanguageId).NumberFormat.CurrencyGroupSizes
CultureInfo.CreateSpecificCulture(myLanguageId).NumberFormat.CurrencyDecimalDigits
CultureInfo.CreateSpecificCulture(myLanguageId).NumberFormat.CurrencyDecimalSeparator

и т.д. так далее и т.д.

Это однострочное решение?

Ответы [ 5 ]

11 голосов
/ 17 апреля 2009
decimal moneyvalue = 1921.39m;
string s = String.Format("{0:C}", moneyvalue);

Будет использована текущая культура.

Убедитесь, что в вашем web.config есть следующее:

<system.web>
   <globalization culture="auto" uiCulture="auto"/>
</system.web>

или, как предлагает ck, объявите эквивалент на своей странице

1 голос
/ 28 апреля 2009

спасибо за все ваши ответы. Оказывается, мои требования были неверными. Инфраструктурная сетка не хочет, чтобы строка шаблона знала, какие разделители используют, она использует строку шаблона для десятичных чисел и тому подобное, а затем запрашивает текущую культуру об остальных. Так что это не проблема. все равно спасибо!

0 голосов
/ 30 июня 2009

У нас были почти аналогичные требования в нашем проекте. то, что мы сделали, - это использовали контроль инфраструктуры webcurrencyedit, установили его в качестве editcontrolid для столбца, для которого должна отображаться валюта, а затем установили культуру контроля webcurrencyedit.

0 голосов
/ 17 апреля 2009

Во-первых, если вы относитесь к конкретной культуре, почему бы просто не использовать "C" в качестве строки формата и, следовательно, использовать формат валюты культуры.

Пользовательские строки числового формата не имеют токена; Я подозреваю, однако, что вы можете просто добавить символ валюты к строке, которую вы получите от форматирования с "### ###, 00".

0 голосов
/ 17 апреля 2009

В дополнение к ответу Грега Дина вам может понадобиться

Culture="auto" UICulture="auto"

в объявлении @Page вашей страницы.

...